Postgresql TypeAhead-以全文搜索开始

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

我正在postgresql中实现一个简单的搜索,该搜索将用于检索网页上的提前键入结果。因此,我需要使用的最后一个参数以匹配开始,因为用户可能还没有完成输入单词。当我构造我的
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个结果?有没有更好的方法来构造我的查询,以确保我得到所有以搜索词开头的内容