0

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

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

查询未找到包含文本的记录,其中的单词不是 ix 确切的顺序,例如

pencil black

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

4

0 回答 0