gpt4 book ai didi

ruby-on-rails - 用 Searchkick on Rails 做一个专业术语 "more like this query"?

转载 作者:行者123 更新时间:2023-12-02 22:45:09 26 4
gpt4 key购买 nike

给定一个使用 searchkick 索引到 elasticsearch 的 Widget 模型:

searchkick word: [:title], highlight: [:title], term_vector: true

我已经为这些文档编制了索引:

{ title: "work with puppies" }
{ title: "work with sharks" }
{ title: "work with kittens" }
{ title: "shoot lasers at the moon" }

我正在尝试对一段新文本执行“更像这样”(MLT) 查询:

"work with lasers"

我的目标是让它在最后一篇文档中得分最高,因为“lasers”比“work with”更专业,这在我的文档语料库中很常见。

我已经试过了:

Widget.search query: { 
mlt: {
like_text: "work with lasers",
min_term_freq: 1,
boost_terms: 5,
analyzer: 'searchkick_search2'
} }

但它返回顶部得分最高的“使用...”文档。

我也试过输入 key/val { stopwords: ['work', 'with'] } 但我得到 0 个结果。

有没有办法让 searchkick/elasticsearch 返回具有得分最高的专业术语的文档和仅匹配常见术语的淡化文档?

最佳答案

(为了其他人的利益回答我自己的问题)

事实证明,除非您有大量文档,否则 MLT 查询效果不佳。我将它与大约 100 万个文档放在一起,上面发布的代码非常适合这个:

search query: {
mlt: {
like_text: str,
min_term_freq: 3,
max_query_terms: 35,
boost_terms: 2,
minimum_should_match: '35%'
}
}

YMMV

关于ruby-on-rails - 用 Searchkick on Rails 做一个专业术语 "more like this query"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30354148/

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