我有一个场景,客户决定使用 Elastic Search 而不是 Azure 搜索,主要是因为 Azure 搜索的评分方式存在挑战,并且缺乏插件的可定制性。我正在寻找有关以下内容的指导,以了解 Azure 搜索功能是否发生了根本变化,或者当前是否可以在无需进行大量自定义的情况下处理以下要求:
评分 – Azure 搜索使用默认 TF/IDF 算法为返回的文档分配分数。我客户的客户正在数据中搜索实体(人员和企业),因此 TF/IDF 的相关性不如匹配分数来显示搜索到的名称与结果文档中显示的名称的接近程度。 ElasticSearch 提供名为“重新评分”的功能,您可以自定义返回文档的评分方式,以更好地满足您的需求。 Rescore 是通过在查询本身中传递 Rescore 子句来实现的。在客户当前的 ElasticSearch 部署中,他们根据给定文档返回的分数介于 0 到 1(0% 到 100%)之间,具体取决于文档中的名称与查询的名称的匹配程度。
自定义插件 – ElasticSearch 允许自定义插件,这些插件基本上是脚本,允许您自定义 ElasticSearch 的行为,以更灵活地满足用户的特定需求。 ES 社区贡献了许多出色的插件,我的客户使用了其中两个插件,这些插件对于他们的搜索体验来说是不可或缺的。 Azure 搜索当时没有或没有此功能。
谢谢
最佳答案
关于第一个主题,替代方案是评分配置文件:
https://learn.microsoft.com/en-us/azure/search/index-add-scoring-profiles
对于第二个,不确定您在谈论哪些插件。 Azure 搜索允许自定义分析器:
https://learn.microsoft.com/en-us/azure/search/index-add-custom-analyzers
关于Azure 搜索与 Elastic 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59181288/