gpt4 book ai didi

ruby-on-rails - 让 postgres 全文搜索 (tsvector) 像 ILIKE 一样在单词中搜索?

转载 作者:行者123 更新时间:2023-11-29 11:32:49 25 4
gpt4 key购买 nike

假设我搜索“Blerg”。我有一个名为 SomethingblergSomething 的项目。

如果我像这样在 postgres(和 rails)中进行 ILIKE 搜索:

where("name ILIKE ?", "%#{ 'Blerg' }%")

它将返回结果 'SomethingBlergSomething' 因为它包含 Blerg。

有没有办法让更快的 tsvector 在一个词中进行类似的搜索:

where("(to_tsvector('english', name) @@ to_tsquery(?))", ('Blerg' + ':*'))

上面的查询不会返回'SomethingBlergSomething'。

那么如何让 tsvector 在搜索内部单词时表现得像 ILIKE。

最佳答案

你知道附加模块提供的三元组搜索吗 pg_trgm ?这似乎比文本搜索更适合您的用例。

有了 trigram 索引(GIN 或 GiST),您可以使用原始的 ILIKE 谓词并获得对其的索引支持。为此,您需要 Postgres 9.1+。

详细信息:

关于ruby-on-rails - 让 postgres 全文搜索 (tsvector) 像 ILIKE 一样在单词中搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27443950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com