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

  • 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.

主站蜘蛛池模板: 桑日县| 凤冈县| 马关县| 乌兰察布市| 吴江市| 堆龙德庆县| 喀喇| 临潭县| 温宿县| 岗巴县| 卓尼县| 山东省| 齐河县| 冀州市| 黔西| 原平市| 静乐县| 西林县| 嵊泗县| 托克托县| 日喀则市| 政和县| 墨竹工卡县| 福安市| 绥江县| 宁武县| 温州市| 江安县| 山阴县| 梅州市| 天镇县| 昌乐县| 芦山县| 新龙县| 鹤峰县| 宁都县| 湖南省| 巩义市| 延津县| 怀集县| 铅山县|