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

  • Mastering PostgreSQL 9.6
  • Hans Jurgen Schonig
  • 223字
  • 2021-07-09 19:57:23

Comparing strings

After taking a brief look at the stemming process, it is time to figure out how a stemmed text can be compared to a user query. The following code snippet checks for wanted:

test=# SELECT to_tsvector('english', 'A car, I want a car. I would not even mind having many cars') @@ to_tsquery('english', 'wanted'); 
?column?
----------
t
(1 row)

Note that wanted does not actually show up in the original text. Still, PostgreSQL will return true. The reason is that want and wanted are both transformed to the same lexeme so the result is true. Practically, this makes a lot of sense. Imagine you are looking for car on Google. If you find pages selling cars, this is totally fine. Finding common lexemes is therefore an intelligent idea.

Sometimes, people are not only looking for a single word but want to find a set of words. With to_tsquery, this is possible as shown in the next example:

test=# SELECT to_tsvector('english', 'A car, I want a car. I would not even mind having many cars') @@ to_tsquery('english', 'wanted & bmw'); 
?column?
----------
f
(1 row)

In this case, false is returned because bmw cannot be found in our input string. In the to_tsquery function, & means and and | means or. It is therefore easily possible to build complex search strings.

主站蜘蛛池模板: 乌苏市| 资兴市| 桃园市| 苏州市| 蒙山县| 大姚县| 潞城市| 西充县| 达拉特旗| 阳城县| 开平市| 台东市| 盐边县| 蕲春县| 庆安县| 南部县| 若羌县| 新昌县| 海安县| 三河市| 长泰县| 澎湖县| 商南县| 镇坪县| 安宁市| 大关县| 天柱县| 内江市| 定兴县| 吉首市| 宁海县| 杭锦后旗| 阳信县| 报价| 湟源县| 曲松县| 梁平县| 乐昌市| 平罗县| 循化| 水城县|