作者:Carlos Delgado
在上一篇文章中,我们讨论了同义词及其对于提供出色搜索体验的重要性。 使用同义词可以通过以下方式改善搜索结果:
搜索结果需要随着时间的推移而变化。 新商品开始销售,新趋势改变了用户搜索的内容,新术语成为搜索域的一部分。 我们的搜索体验也必须不断发展。
作为改进搜索体验的一部分,保持同义词更新非常重要。 Elasticsearch® 中引入了新的同义词 synonym API,以帮助管理同义词并无缝更新它们。
此 API 简化了您更新同义词的工作流程,并提供与你的流程和工具更好的集成。
请注意:Synonym API 适用于 Elasticsearch 8.10 版本之后。
正如博客文章中详细解释的,Elasticsearch 中的同义词是使用 synonym 和 synonym graph token filter 定义的。 然后,这些 token 过滤器将作为文本字段分析的一部分包含在内。
我们已经可以通过在 synonym token 过滤器中配置同义词文件来更新搜索分析器的同义词 - 例如:
PUT /synonym_test
{"settings": {"index": {"analysis": {"analyzer": {"synonym_analyzer": {"tokenizer": "whitespace","filter": ["my_synonyms"]}},"filter": {"my_synonyms": {"type": "synonym","synonyms_path": "","updateable": true}}}}}
}
更多关于同义词的使用,请阅读:
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能
Elasticsearch:使用同义词 synonyms 来提高搜索效率
synonym_path 定义存储同义词文件的文件路径(相对于 Elasticsearch 配置文件)。 同义词文件包含同义词规则,必须分发到集群中的所有 Elasticsearch 节点。
要更新同义词,我们需要更新每个集群节点上的同义词文件,然后使用 reload search analyzers API 为每个使用同义词文件作为其同义词标记过滤器的索引重新加载搜索分析器。
当前更新同义词的方式涉及以下几个步骤:
这是可行的,但它涉及基础设施工作,例如上传文件、保持文件最新和同步,以及了解每个同义词文件的使用位置。
与之前基于文件的同义词更新方法相比,使用同义词 API 具有许多优点:
同义词集是要应用的一组同义词。 你可以根据需要添加任意数量的同义词集。
每个同义词集使用同义词规则定义同义词。 每个规则使用 Solr 格式定义一组同义词单词以及它们之间的显式等价项。
创建同义词集是使用创建或更新同义词集 API 完成的:
PUT _synonyms/my-synonyms-set
{"synonyms_set": [{"id": "pc","synonyms": "pc => personal computer"},{"id": "computer","synonyms": "computer,laptop"}]
}
此 API 请求创建一个带有标识符 my-synonyms-set 的新同义词集,它定义了两个同义词规则:
创建后,你的同义词集可以用作 synonym 或 synoynm graph token 滤器的一部分。
使用 synonyms_set 配置选项来指定在上一步中创建的同义词集标识符:
PUT /synonym_set_test
{"settings": {"index": {"analysis": {"analyzer": {"synonym_analyzer": {"tokenizer": "whitespace","filter": ["my_synonyms"]}},"filter": {"my_synonyms": {"type": "synonym","synonyms_set": "my-synonyms-set","updateable": true}}}}}
}
你的同义词已准备好可供使用! 分析器将检索配置的同义词集中定义的同义词,并将它们应用到您使用它的字段。
你可以通过更新所有同义词规则来更新同义词集:
PUT _synonyms/my-synonyms-set
{"synonyms_set": [{"id": "pc","synonyms": "pc => personal computer"},{"id": "computer","synonyms": "computer, pc, laptop, desktop"}]
}
或者,你可以管理单独的同义词规则。 由于每个规则都有一个标识符,因此你可以创建、删除或更新单个同义词规则:
PUT _synonyms/my-synonyms-set/computer
{"synonyms": "computer, pc, laptop, desktop"
}
就是这样! 使用同义词集的索引将自动重新加载分析器。 你的搜索体验将可以访问更新后的同义词,无需执行进一步的步骤。
管理你的搜索体验的同义词从未如此简单! 你现在可以使用新的 synonym API 来定义同义词并通过自动重新加载所需的分析器来更新同义词,而不是使用文件并更新每个文件和关联的索引分析器。
一探究竟! 立即创建 Elastic Cloud 集群并开始定义同义词。
我们很乐意听到您的反馈 - 加入我们的讨论论坛或社区 Slack 频道中的对话。
本文发布于:2024-01-28 01:07:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063752443740.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |