官术网_书友最值得收藏!

Digging into new SQL and developer-related functions

One of the most promising new features of PostgreSQL is the ability to perform phrase searching. Up to 9.5 it was only possible to search for words—phrase searching was very hard to do. 9.6 nicely removes this limitation. Here is an example of how it works:

test=# SELECT phraseto_tsquery('Under pressure') @@                   to_tsvector('Something was under some sort of pressure');

?column?

----------

f

(1 row)

test=# SELECT phraseto_tsquery('Under pressure') @@ to_tsvector('Under pressure by David Bowie hit number 1 again');

?column?

----------

t

(1 row)

The first query returns false because the words we are looking for do not occur in the desired order. In the second example, true is returned because there really is a proper match.

However, there is more: in 9.6 it is possible to check whether words show up in a certain order. In the following example, we want a word to be between united and nations:

test=# SELECT tsquery('united <2> nations') @@                     to_tsvector('are we really united, happy nations?');

?column?

----------

t

(1 row)

test=# SELECT tsquery('united <2> nations') @@ to_tsvector('are we really at united nations?');

?column?

----------

f

(1 row)

The second example returns false as there is no word between united and nations.

主站蜘蛛池模板: 哈巴河县| 三原县| 眉山市| 湖州市| 三门县| 雷波县| 斗六市| 沽源县| 衡水市| 龙井市| 淮阳县| 乌审旗| 汝州市| 台山市| 隆回县| 鄂州市| 邓州市| 上虞市| 阳曲县| 黄大仙区| 连南| 合水县| 当阳市| 六安市| 汝城县| 繁昌县| 葵青区| 贵定县| 镇平县| 临夏县| 上饶县| 盐池县| 延津县| 曲水县| 郎溪县| 清远市| 那坡县| 宜兰市| 卢龙县| 布拖县| 岢岚县|