如何在Postgres 9.1 +

时间:2017-09-22 11:54:46

标签: sql postgresql full-text-search full-text-indexing tsvector

购物车使用以下查询搜索产品:

select ...
from toode,yksus7,artliik,artryhm
where toode.nimetus ilike '%'||{{5}}||'%' escape '!' 
      or toode.toode ilike '%'||{{5}}||'%' escape '!' 
      or toode.analoog ilike '%'||{{5}}||'%' escape '!' 
      or yksus7.nimetus ilike '%'||{{5}}||'%' escape '!' 
      or artliik.artlnimi ilike '%'||{{5}}||'%' escape '!' 
      or artryhm.nimetus ilike '%'||{{5}}||'%' escape '!' 
      or toode.markused ilike '%'||{{5}}||'%' escape '!'
...

搜索字段类型是字符(n)和TEXT {{5}}表示用户在网页的搜索框中输入的搜索字词。

此查询字仅与完全匹配。 需要搜索来自WHERE子句中加入的不同表toode,yksus7,artliik,artryhm的文本,并返回最佳匹配结果。

如果用户输入

blank pencil

查询未找到包含文字的记录,其中的文字不是像

那样的精确顺序
pencil black

如何解决这个问题,以便返回类似的结果? 使用从9.1开始的PostgreSql版本。

0 个答案:

没有答案