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

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.

主站蜘蛛池模板: 屏东市| 福建省| 治多县| 林口县| 乌拉特后旗| 丰顺县| 中牟县| 松桃| 海口市| 横峰县| 彰化市| 麟游县| 新安县| 武安市| 龙泉市| 吉木乃县| 海口市| 罗平县| 定南县| 洛扎县| 商河县| 大新县| 江油市| 隆林| 运城市| 余干县| 耒阳市| 湘阴县| 高安市| 左贡县| 布尔津县| 灵台县| 碌曲县| 陆丰市| 磐安县| 鸡东县| 沂南县| 丹阳市| 沛县| 柳林县| 普兰县|