Postgresql TypeAhead-以全文搜索开始
我正在postgresql中实现一个简单的搜索,该搜索将用于检索网页上的提前键入结果。因此,我需要使用的最后一个参数以匹配开始,因为用户可能还没有完成输入单词。当我构造我的Postgresql TypeAhead-以全文搜索开始,postgresql,full-text-search,Postgresql,Full Text Search,我正在postgresql中实现一个简单的搜索,该搜索将用于检索网页上的提前键入结果。因此,我需要使用的最后一个参数以匹配开始,因为用户可能还没有完成输入单词。当我构造我的tsquery时,我在最后一个参数中添加:*。下面是一个示例查询: SELECT id, key, name FROM principal, to_tsvector(key || ' ' || name) vector, to_tsquery('investig:*') query WHERE vector
tsquery
时,我在最后一个参数中添加:*
。下面是一个示例查询:
SELECT id, key, name
FROM principal,
to_tsvector(key || ' ' || name) vector,
to_tsquery('investig:*') query
WHERE vector @@ query
ORDER BY ts_rank(vector, query) DESC
键入“调查”一词时,我会出现以下行为:
Input | Result Count
==========================
i | 0
in | 0
inv | 8
inve | 8
inves | 8
invest | 8
investi | 7
investig | 7
investiga | 0
investigat | 0
investigate | 7
输入|结果计数
==========================
i | 0
在| 0
库存| 8
投资| 8
投资| 8
投资| 8
投资| 7
调查7
调查| 0
调查| 0
调查| 7
这比省略:*
要好,但还不够好。为什么当investiga
返回7个结果时,我会得到0个结果?有没有更好的方法来构造我的查询,以确保我得到所有以搜索词开头的内容