【问题标题】:Customize azure search scoring in a specific way以特定方式自定义 Azure 搜索评分
【发布时间】:2017-06-19 23:48:52
【问题描述】:

假设所有文档都有以下字段

要求对于电子邮件,分数应为 100(如果完全匹配)或 0。 对于其余字段,根据编辑距离为 0 到 100。

假设索引中的记录如下所示

1.abcd@gmail.com,Peterr,Parker,开发者 2.xyz@yahoo.com,史蒂夫,史密斯,经理

查询是对所有字段和参数进行模糊搜索,如 abcd@gmail.com,Pet,Par,Devl

搜索结果应该有第一条记录的分数,例如

电子邮件得分+姓氏得分+名字得分+头衔得分

=100+50('Peterr and Pet'的大约编辑距离)+50('Peterr and Parker'的大约编辑距离)+44('Devl and Developer'的大约编辑距离)

=244

同样,搜索结果应该有类似的分数。

我刚刚检查了 Azure 搜索评分是否有权重,但我认为这些在这种情况下不会有太大帮助。我们正在寻找的主要内容是找到一种方法,让 Azure 为每条记录返回搜索分数搜索将根据我上面讨论的分数

【问题讨论】:

    标签: azure azure-cognitive-search


    【解决方案1】:

    为了澄清,您似乎需要将评分公式作为查询词和索引词之间的编辑距离的函数 - 距离越短,得分越高。不幸的是,这在 Azure 搜索中是不可能的。

    Azure 搜索引擎分两个阶段执行搜索查询:检索和评分。

    在检索搜索期间,由lexical analyzer 处理的查询词在倒排索引中进行查找。包含这些条款的文档将被退回。当您使用模糊搜索时,我们通过从给定查询词的edit distance 内添加倒排索引中的词来扩展您的搜索查询 - 模糊扩展。这样您的查询可以匹配更多的文档。

    在评分过程中,我们使用Lucene scoring formula 为检索到的文档分配相关性分数。此公式基于TF/IDF。实际上,这意味着匹配稀有词条的文档将在结果集中排名靠前。

    重要的是要知道,Lucene 评分公式仅适用于与原始查询词和通过模糊扩展添加的词匹配的文档。匹配通过前缀扩展或正则表达式/通配符扩展添加的术语的文档将获得恒定分数 1。这样,这些文档将在结果集中,但不会影响基于术语频率的排名。

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 2015-07-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多