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

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.

主站蜘蛛池模板: 鹿邑县| 禄丰县| 菏泽市| 离岛区| 溧阳市| 内江市| 湘阴县| 扎兰屯市| 孟津县| 舟山市| 玛曲县| 曲沃县| 博罗县| 日照市| 宁蒗| 鄂尔多斯市| 潮州市| 金华市| 尼玛县| 松溪县| 陇西县| 中超| 延寿县| 新蔡县| 来安县| 县级市| 图木舒克市| 平乡县| 文化| 文安县| 玛曲县| 波密县| 马鞍山市| 公主岭市| 吴江市| 神木县| 鄂托克旗| 丰都县| 泰顺县| 克东县| 土默特左旗|