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

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.

主站蜘蛛池模板: 通渭县| 女性| 海门市| 兴安盟| 游戏| 耿马| 靖西县| 本溪市| 泰顺县| 天长市| 宜良县| 筠连县| 监利县| 巴林左旗| 巴青县| 涟水县| 通城县| 黎平县| 双鸭山市| 周口市| 浦江县| 平顺县| 怀仁县| 黄大仙区| 新干县| 义乌市| 黎城县| 安顺市| 广饶县| 宣化县| 汽车| 荥阳市| 西贡区| 独山县| 龙井市| 建瓯市| 山阳县| 宾阳县| 互助| 额尔古纳市| 大荔县|