簡體   English   中英

在PostgreSQL中添加全文索引會加快我使用LIKE的常規查詢嗎?

[英]Will adding a full text index in PostgreSQL speed up my regular queries which use LIKE?

如果我在PostgreSQL中添加全文索引,我的LIKE和ILIKE查詢會自動使用嗎?

我是否需要使用特殊的全文語法才能利用PostgreSQL中的全文索引:

SELECT title, ts_headline(body, query) AS snippet, ts_rank_cd(body_tsv, query, 32) AS rank
  FROM blog_entry, plainto_tsquery('hello world') AS query
  WHERE body_tsv @@ query
  ORDER BY rank DESC;

不, LIKE運算符不會使用全文索引。

使用PostgreSQL 9.1,您可以創建一種新類型的索引,即使通配符不僅位於表達式的末尾,也會加快LIKE操作

http://www.depesz.com/2011/02/19/waiting-for-9-1-faster-likeilike/

為了擴展ahwnn的答案,它們是不同的比較,不能使用相同的索引。

全文搜索總是涉及對文本進行標記,並且通常涉及詞干。 這使得難以搜索精確的前綴,並且通常不可能例如匹配連續的兩個空格(它們通常被丟棄)。

您可能也希望閱讀各種索引運算符類,特別是text_pattern_ops和friends。 沒有這個LIKE'cab%'無法優化為> ='cab'AND <'cac'。

http://www.postgresql.org/docs/9.1/static/indexes-opclass.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM