TypeAhead - 以全文搜索开始

gil*_*ly3 5 postgresql full-text-search

我正在postgresql中实现一个简单的搜索,用于检索网页上的预先输出结果.所以,我需要使用start-with匹配的最后一个参数,因为用户可能没有完成输入单词.当我构建我的时候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
Run Code Online (Sandbox Code Playgroud)

在输入单词"investig"时,我会收到以下行为:

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

这比我省略的要好:*,但不够好.investigainvestigate返回7结果时,为什么我得到0 结果?有没有更好的方法来构建我的查询,以确保我得到以搜索词开头的所有内容?