我在postgresql 8.4中有一个俄语词典。
我尝试使用完整搜索但有一些麻烦。
我没有得到任何结果因为试图通过4-5符号找到单词。例如:
select * from parcels_temp where name_dispatcher @@ to_tsquery('Нику');
获得结果:0行。
select * from parcels_temp where name_dispatcher @@ to_tsquery('Никуд');
获得结果:2行。这是正确的。
我尝试按字典中未包含的字词进行搜索。在这种情况下我要做什么?如何更新PostgreSQL中的字典?
它必须创建tsvector
列,否则我可以使用to_tsvector
函数i查询?或者更慢?
答案 0 :(得分:1)
Postgresql索引器不处理短于3个字符的字符串。这样做是为了减少索引大小和生成时间。
显然,你什么都没得到。有更新字典的方法,请参阅文档。
答案 1 :(得分:0)
1:默认情况下,postgreSQL只匹配整个单词。您可以选择进行前缀匹配:
select * from parcels_temp where name_dispatcher @@ to_tsquery('Нику:*');
请参阅:https://www.postgresql.org/docs/9.5/static/textsearch-controls.html
3:您可以在其上创建列和GIN索引,或者您可以在不创建列的情况下创建索引。我认为它们在性能方面是相同的。有关详情,请参阅: https://www.postgresql.org/docs/9.5/static/textsearch-tables.html