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

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 the word 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 a 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.

主站蜘蛛池模板: 客服| 剑阁县| 来凤县| 张家口市| 浦县| 苍山县| 金坛市| 文水县| 梁平县| 望都县| 开远市| 西峡县| 南丰县| 阳东县| 阳原县| 汶川县| 微山县| 扎赉特旗| 靖安县| 保靖县| 南华县| 乌拉特前旗| 贵州省| 萝北县| 彩票| 扎赉特旗| 杭锦旗| 鹿邑县| 宁阳县| 高州市| 汉沽区| 盐池县| 达日县| 庄浪县| 西藏| 礼泉县| 泸州市| 缙云县| 婺源县| 剑阁县| 朝阳县|