Lucene Azure搜索-语音分析器问题

Lucene Azure搜索-语音分析器问题,lucene,azure-cognitive-search,Lucene,Azure Cognitive Search,我们的客户查询我们的Azure搜索索引,主要是查询人名。我们所有的领域都在使用Lucene分析仪。我们通过将客户机的输入名称变成一个短语并添加接近率3来构建查询字符串。因为我们使用短语进行搜索,所以不能使用Lucene analyzer的模糊搜索功能,因为它只适用于单个单词 因此,我们正在寻找一种解决方案,以便能够返回与客户端输入的名称拼写不完全一致的结果。我们遇到了语音分析器,刚刚在索引中实现了变音算法。我们已经运行了一些测试,虽然它使我们更接近我们需要的,但我们仍然看到一些问题: 分析仪的范

我们的客户查询我们的Azure搜索索引,主要是查询人名。我们所有的领域都在使用Lucene分析仪。我们通过将客户机的输入名称变成一个短语并添加接近率3来构建查询字符串。因为我们使用短语进行搜索,所以不能使用Lucene analyzer的模糊搜索功能,因为它只适用于单个单词

因此,我们正在寻找一种解决方案,以便能够返回与客户端输入的名称拼写不完全一致的结果。我们遇到了语音分析器,刚刚在索引中实现了变音算法。我们已经运行了一些测试,虽然它使我们更接近我们需要的,但我们仍然看到一些问题:

  • 分析仪的范围如此之广,以至于它会带来很多误报。例如,当搜索Kenneth Gooden时,它会返回Kenneth Cotton。在我们看来,这在语音上有点太远了,不能被认为是相似的。是否可以以任何方式调整灵敏度,或者,是否可以采取措施提高其他参数以纠正这一问题

  • 在搜索Barry Soper时,返回的第一个也是得分最高的结果是“Barry Spear”。得分较低的第二个结果是“Soper,Barry Russell”。在某种程度上,我可以理解为什么会这样得分(第二个结果的b/c是姓氏第一),但是。。。不是真的。第二个结果包含所需接近范围内的两个精确项。也许Azure Search在应用分析器之前会优先考虑短语中单词的顺序?我还是不明白。(旁注-此查询还返回“Barh Super”-参见上文第1期)

  • 我想知道是否有人可以提供建议来调整Azure Search的行为,使其更符合我们的需要,或者,建议语音分析器的替代方案。我们还并没有尝试过任何其他可用的语音算法,只有b/c变音是最好的和最常用的。但我们也愿意接受关于其他算法的建议


    谢谢。

    模糊运算符仅对单个术语有效,这是正确的。在这种情况下,您可以使用自定义分析器(语音标记过滤器)或同义词功能(在预览中)。我不确定你所说的“我们刚刚在索引中实现了变音算法”是什么意思,但在Azure搜索中有几个语音标记过滤器可供选择。同义词是仅在预览中可用的较新功能,您可以查看。对于同义词,您需要定义同义词规则,例如“Nate,Nathan,Nathaniel”,在查询时,搜索一个同义词会自动包含其他同义词的结果

    好的,那么我应该如何使用这些构建块来控制搜索的相关性呢?建模的一种方法是为每个扩展策略使用单独的字段。例如,名称可以有三个字段,即“名称”、“名称同义词”和“名称拼音”,而不是单个字段。第一个字段“name”用于精确匹配,“name_synonym”字段启用了同义词,第三个字段使用语音分析器,最大程度地拓宽了搜索范围。然后,您可以使用来提高每个字段中的比赛分数。例如,您可以为精确匹配提供10的提升值,为同义词提供5的提升值,为语音扩展提供1的提升值。您的搜索将针对这三个内部字段进行

    关于你的问题,为什么“Soper,Barry Russell”的排名低于“Barry Spear”。经过语音分析。“soper”和“spear”这两个词在索引和查询时简化为相同的形式,并被视为相同的术语。在计算分数和排名时,搜索引擎使用术语的分析形式,语音相似性对分数没有影响。这就是为什么,次要因素,如字段长度,会对相关性得分起到更重要的影响作用

    希望这有帮助。我提供了一个示例来对此进行建模,但您也可以查看

    如果您还有其他问题,请告诉我


    Nate

    模糊运算符仅对单个项起作用是正确的。在这种情况下,您可以使用自定义分析器(语音标记过滤器)或同义词功能(在预览中)。我不确定你所说的“我们刚刚在索引中实现了变音算法”是什么意思,但在Azure搜索中有几个语音标记过滤器可供选择。同义词是仅在预览中可用的较新功能,您可以查看。对于同义词,您需要定义同义词规则,例如“Nate,Nathan,Nathaniel”,在查询时,搜索一个同义词会自动包含其他同义词的结果

    好的,那么我应该如何使用这些构建块来控制搜索的相关性呢?建模的一种方法是为每个扩展策略使用单独的字段。例如,名称可以有三个字段,即“名称”、“名称同义词”和“名称拼音”,而不是单个字段。第一个字段“name”用于精确匹配,“name_synonym”字段启用了同义词,第三个字段使用语音分析器,最大程度地拓宽了搜索范围。然后,您可以使用来提高每个字段中的比赛分数。例如,您可以为精确匹配提供10的提升值,为同义词提供5的提升值,为语音扩展提供1的提升值。您的搜索将针对这三个内部字段进行

    关于你的问题,为什么“Soper,Barry Russell”的排名低于“Barry Spear”。经过语音分析。“soper”和“spear”这两个词在索引和查询时简化为相同的形式,并被视为相同的术语。在计算分数和排名时,搜索引擎使用术语的分析形式,语音相似性对分数没有影响。这就是为什么,次要因素,如场长,将发挥更重要的作用