【发布时间】:2015-04-28 19:11:26
【问题描述】:
我正在使用 Elasticsearch 搜索用户应该加入的组。我将用户数据嵌套到搜索查询中。返回时,我会返回用户应该在的最接近的匹配组。
我正在搜索的字段是一个嵌套字段,如下所示:
`{"interests": [
{"topics":["python", "stackoverflow", "elasticsearch"]},
{"topics":["arts", "textiles"]}
]}`
但是,如果您想了解比赛 - 您如何做到这一点?
Elasticsearch 确实有一个解释功能,它说明使用 tfidf 评分是由什么组成的,但没有具体说明使用了哪些术语。
例如,如果我搜索“Textile”,则文档应该匹配“textiles”。因此,我希望以解释或其他方式返回术语“纺织品”。
我认为满足此需求的唯一方法是存储搜索和检索到的文档,然后处理两者以发现 ES 最有可能匹配的词。
编辑 - 为了更清楚地说明问题
在我的索引中的一个示例,其中包含"interests": ['arts', 'fine arts', 'art painting', 'arts and crafts', 'sports']
现在我的搜索,我正在寻找Arts 和许多其他的东西。现在我正在搜索的术语多次出现在此列表中,因此应该始终是贡献者。
我想要在回复中说这些词与['arts', 'fine arts', 'art painting', 'arts and crafts']以及它们的匹配程度相匹配,即“艺术”应该高于其他词,但所有其他词也是相关的
【问题讨论】:
标签: elasticsearch