Lucene Azure搜索-语音分析器问题
我们的客户查询我们的Azure搜索索引,主要是查询人名。我们所有的领域都在使用Lucene分析仪。我们通过将客户机的输入名称变成一个短语并添加接近率3来构建查询字符串。因为我们使用短语进行搜索,所以不能使用Lucene analyzer的模糊搜索功能,因为它只适用于单个单词 因此,我们正在寻找一种解决方案,以便能够返回与客户端输入的名称拼写不完全一致的结果。我们遇到了语音分析器,刚刚在索引中实现了变音算法。我们已经运行了一些测试,虽然它使我们更接近我们需要的,但我们仍然看到一些问题:Lucene Azure搜索-语音分析器问题,lucene,azure-cognitive-search,Lucene,Azure Cognitive Search,我们的客户查询我们的Azure搜索索引,主要是查询人名。我们所有的领域都在使用Lucene分析仪。我们通过将客户机的输入名称变成一个短语并添加接近率3来构建查询字符串。因为我们使用短语进行搜索,所以不能使用Lucene analyzer的模糊搜索功能,因为它只适用于单个单词 因此,我们正在寻找一种解决方案,以便能够返回与客户端输入的名称拼写不完全一致的结果。我们遇到了语音分析器,刚刚在索引中实现了变音算法。我们已经运行了一些测试,虽然它使我们更接近我们需要的,但我们仍然看到一些问题: 分析仪的范
谢谢。模糊运算符仅对单个术语有效,这是正确的。在这种情况下,您可以使用自定义分析器(语音标记过滤器)或同义词功能(在预览中)。我不确定你所说的“我们刚刚在索引中实现了变音算法”是什么意思,但在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”这两个词在索引和查询时简化为相同的形式,并被视为相同的术语。在计算分数和排名时,搜索引擎使用术语的分析形式,语音相似性对分数没有影响。这就是为什么,次要因素,如场长,将发挥更重要的作用