gpt4 book ai didi

elasticsearch - 从 ElasticSearch 中的搜索中排除短语

转载 作者:行者123 更新时间:2023-12-02 22:35:31 27 4
gpt4 key购买 nike

我正在使用 ElasticSearch (elasticsearch-dsl) 并搜索关键字,但想忽略搜索中的一些短语。例如。搜索 "best" 并忽略短语 "best regards":它应该找到文档“The Best Car bla-bla-bla Best Regards”(第一个匹配正确,第二个被忽略),但不应匹配“Bla-bla-bla Best Regards”。理想情况下,它还应该只突出显示实际匹配,而忽略短语中没有单词。我正在考虑踢 2 个查询,然后从实际搜索中删除忽略短语的结果。是否有可能以某种方式获得匹配 token 及其位置的列表?还是有更好的方法?我无法将停止短语添加到索引中,因为搜索是动态的,忽略短语因用户而异。

最佳答案

我不确定我是否完全理解您的方法然而,听起来您想在查询中添加一个不能与精确短语匹配相结合的查询。它看起来有点像这样:

{
"query": {
"bool" : {
"must" : {
"term" : { "text_field" : "best" }
},
"must_not" : {
query_string: {default_field: "text_field", query: '\"best regards\"'}
},
}
}

如果你有多个短语来排除字符串语法是:

'\"text"\ OR \"text1"\ OR ... \"textn\"'

我也花了一些时间才意识到 elasticsearch 的强大 custom analyzers是的,我不确定您的数据究竟是什么样子以及您的需求是什么,但如果您还没有,您应该看看它,它可能会为您省去很多麻烦并使您的查询更有效率。

关于elasticsearch - 从 ElasticSearch 中的搜索中排除短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55798206/

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