【发布时间】:2017-07-18 00:53:00
【问题描述】:
我们的客户查询我们的 Azure 搜索索引,主要是为了人名。我们在所有领域都使用 Lucene 分析器。我们通过将客户端的输入名称变成一个短语来构建查询字符串,并添加接近率 3。因为我们使用短语进行搜索,所以我们不能使用 Lucene 分析器的模糊搜索功能,因为它只适用于单个单词。
因此,我们正在寻找一种解决方案,以便能够返回名称拼写与客户输入的名称不完全一致的结果。我们遇到了语音分析器,并且刚刚在我们的索引中实现了 Metaphone 算法。我们进行了一些测试,虽然它让我们更接近我们需要的东西,但我们仍然看到一些问题:
分析仪的范围如此之广,以至于它会带回很多误报。例如,在 Kenneth Gooden 上搜索时,它会返回 Kenneth Cotton。在我们看来,这有点太远了,不能被认为是语音上的相似。是否可以以任何方式调整灵敏度,或者可以采取一些措施来提高其他一些参数来解决这个问题?
在 Barry Soper 上进行搜索时,返回的第一个也是得分最高的结果是“Barry Spear”。第二个结果,得分较低,是“Soper,Barry Russell”。在某种程度上,我可以也许明白为什么它会这样得分(第二个的 b/c 是姓氏),但后来......不是真的。第二个结果包含所需接近度内的两个确切术语。也许 Azure 搜索在应用分析器之前优先考虑短语中的单词顺序?对我来说仍然没有意义。 (旁注 - 此查询还带回“Barh Super” - 请参阅上面的问题 #1)
我想知道是否有人可以提供建议来调整 Azure 搜索的行为,使其更符合我们的需要,或者,也许可以建议语音分析器的替代方案。我们还没有尝试任何其他可用的语音算法,只有 b/c 似乎 Metaphone 是最好的和最常用的。但我们也愿意接受有关其他算法的建议。
谢谢。
【问题讨论】:
标签: lucene azure-cognitive-search