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

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.

主站蜘蛛池模板: 荆州市| 资源县| 巴马| 麻阳| 永安市| 黔西县| 金沙县| 普定县| 威信县| 循化| 武汉市| 运城市| 凤阳县| 渝中区| 威信县| 方城县| 和林格尔县| 安福县| 兰西县| 台东市| 黎平县| 沁源县| 海丰县| 上饶市| 锡林浩特市| 中卫市| 姚安县| 安远县| 灯塔市| 习水县| 南开区| 普兰县| 兴国县| 察雅县| 临汾市| 玉林市| 浦县| 吐鲁番市| 永德县| 疏勒县| 西城区|