gpt4 book ai didi

elasticsearch - 查找Elasticsearch已匹配的字段

转载 作者:行者123 更新时间:2023-12-02 23:37:00 25 4
gpt4 key购买 nike

我正在使用Elasticsearch搜索用户应加入的组。我将用户数据嵌套到搜索查询中。返回时,我会找回该用户应位于的最匹配的组。

我正在搜索的字段是一个嵌套字段,如下所示:

`{"interests": [
{"topics":["python", "stackoverflow", "elasticsearch"]},
{"topics":["arts", "textiles"]}
]}`

但是,如果您想了解一场比赛-如何做到这一点?

Elasticsearch确实有一个解释功能,该功能说明使用tfidf评分的内容,但未具体说明使用了哪些术语。

例如,如果我搜索“纺织品”,则文档应与“纺织品”匹配。因此,我希望以解释或其他方式返回“纺织品”一词。

我认为满足此需求的唯一方法是存储搜索和检索到的文档,然后进行处理以发现ES最有可能匹配的单词。

编辑-为了使问题更清晰

我的索引中有一个 "interests": ['arts', 'fine arts', 'art painting', 'arts and crafts', 'sports']的组的示例

现在,我正在搜索 Arts和许多其他东西。现在,我要搜索的术语多次出现在此列表中,因此应该始终是一个贡献者。

我想在回应中说的是,这些单词与 ['arts', 'fine arts', 'art painting', 'arts and crafts']匹配以及它们的匹配程度,即``艺术''应该高于其他单词,但所有其他单词也都相关

最佳答案

Elasticsearch允许您为所有查询指定_name字段,
过滤器。这意味着您可以使用以下命令将查询分为不同的部分
单独的名称,这将使您能够确定匹配的部分。

例如:

{
"query" : {
"bool" : {
"should" : [
{"match" : { "interests.topics" : {"query" : "python", "_name" : "py-topic"} }},
{"match" : { "interests.topics" : {"query" : "arts", "_name" : "arts-topic"} }}
]
}
}
}

然后,在您的响应中,您将返回其中的任何查询数组(或
过滤器)匹配,则可以确定 py-topic查询和/或
上面匹配的 arts-topic查询。

关于elasticsearch - 查找Elasticsearch已匹配的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895417/

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