gpt4 book ai didi

elasticsearch - 如何影响Elasticsearch自动建议查询首先返回完全匹配?

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

请考虑以下3个单独的文档中索引的职位名称:

[ "Software Developer Analyst, Senior",
"Software Developer and Analyst - iOS, iPad, . Net",
"Software Developer" ]

在现实世界中,“软件开发人员”有数百种版本,因此,如果自动完成功能仅返回10个文档,则很可能会陷入混乱。

是否可以进行某种排序以偏向完全匹配?

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html

最佳答案

完成建议者使用FST(在索引时建立的特殊内存数据结构)进行快速搜索,因此有可能仅在索引时影响 future 查询的结果(请参阅GitHub上与您的问题有关的issue)。

您可以为自己的建议者添加 context 。例如,可能是category字段,其中将包含特定软件开发人员的功能。应该以某种方式从将要建立索引的数据中检索这些功能:

PUT jobs/_doc/1
{
"suggest": "Software Developer and Analyst - iOS, iPad, . Net",
"category": ["apple", "ios", "ipad", "dotnet"]
}

在查询时,应先尝试从用户输入中检索此类功能,然后再将其发送给ES。例如,如果用户键入“java senior software developer”,则可以将此输入转换为查询
POST jobs/_search
{
"suggest": {
"jobs_suggestion" : {
"prefix" : "java senior software developer",
"completion" : {
"field" : "suggest",
"size": 10,
"contexts": {
"category_context": [ "java", "senior" ]
}
}
}
}
}

当然,这种方法需要对索引数据和搜索查询进行复杂的初步分析。

另一种选择是在索引时间为工作职位分配权重,但我认为这不适合您的情况。

关于elasticsearch - 如何影响Elasticsearch自动建议查询首先返回完全匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52298748/

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