Azure搜索建议器 - 模糊不返回结果

时间:2018-03-06 08:51:17

标签: azure azure-search

我创建了一个新的Azure搜索建议器,但使用以下代码实现了模糊搜索:

ISearchIndexClient indexClient = CreateSearchIndexClient();
var suggestParameters = new SuggestParameters();
suggestParameters.UseFuzzyMatching = true;
suggestParameters.MinimumCoverage = 100;

DocumentSuggestResult response = indexClient.Documents.Suggest(term, "suggester", suggestParameters);
IList<SuggestResult> results = response.Results;

索引包含字符串“China”,但是当我使用以下“chn”搜索时,不会返回任何建议。我希望模糊搜索能够返回“中国”。

搜索“chi”会正确地回复“中国”。

有谁能告诉我做错了什么?谢谢

1 个答案:

答案 0 :(得分:0)

对你的问题的简短回答是我们不期望&#34; chn&#34;返回&#34;中国&#34;结果是。

答案很长:模糊匹配的建议分两步进行。第一步是尝试完成&#34;查询的最后一个术语是查找具有该术语作为前缀的匹配单词。只有这样,编辑距离才会成为第二步,即使用编辑距离1扩展查询中的每个术语。

自单词&#34; chn&#34;不是&#34; china&#34;的前缀,它不会被退回到第一步的一部分。因为&#34; chn&#34;距离&#34; china&#34;有2个编辑距离,在第二步中也找不到。另一方面,&#34; chi&#34;是&#34; china&#34;的前缀,所以它在第一步中找到。我希望如果您使用&#34; chna&#34;,&#34; china&#34;运行搜索查询。将成功返回。

希望这能回答你的问题。