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

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.

主站蜘蛛池模板: 东平县| 台南市| 正镶白旗| 保靖县| 兰西县| 溆浦县| 华池县| 大方县| 漯河市| 厦门市| 宝丰县| 青龙| 罗定市| 宁津县| 武强县| 建瓯市| 大荔县| 桓台县| 蒙阴县| 桑植县| 吉安市| 金湖县| 昆山市| 建阳市| 万全县| 尖扎县| 牙克石市| 阆中市| 曲松县| 阿巴嘎旗| 肃宁县| 莲花县| 伊宁县| 呼图壁县| 通道| 义马市| 老河口市| 拉萨市| 平南县| 涡阳县| 莱阳市|