【发布时间】:2017-05-25 13:27:37
【问题描述】:
我设置了一个索引,其中包含大约 1000 个项目。我正在执行以下 API 调用以获取结果。
var parameters = new SearchParameters
{
Select = new[] { "pageTitle", "pageUrl", "metaDescription" },
Top = 5,
QueryType = QueryType.Full
};
var results = indexer.Documents.Search<IndexPageData>("childrens bed frames~", parameters);
从获取数据的角度来看,它按预期工作。但是,如果我将“Childrens”拼错成“Childrns”或“Chidrens”之类的东西......我是否认为模糊/拼写错误搜索会理解并返回相同或非常相似的结果?
但是我得到完全不同的结果,与正确拼写的术语相比,它们的匹配度非常差。
我是否缺少 API 的某些内容?
【问题讨论】:
-
我认为这可能是一个语法问题(这里的关键字是单个):要进行模糊搜索,请在单个单词的末尾使用波浪号“~”符号和一个可选参数,一个数字介于 0 和 2(默认值)之间,用于指定编辑距离。例如,“blue~”或“blue~1”将返回“blue”、“blues”和“glue”。模糊搜索只能应用于术语,不能应用于短语。模糊搜索可以将一个词扩展至最多 50 个满足距离标准的词。 docs.microsoft.com/en-us/rest/api/searchservice/…
-
我使用的是波浪号,默认值为 2?但是拼写错误往往是字母混淆或 .. ie .. ei 或缺少字母...我的印象是 Azure 搜索处理了这样的事情?
-
只搜索“chldren~” ...应该可以。您的字符串中有 3 个单词。
-
或者,试试“childrn~bed~frames~”也许......这绝对是语法。我不在办公桌前,但您应该可以搜索示例。
-
您介意我根据 cmets 创建答案吗?
标签: c# azure-cognitive-search azure-search-.net-sdk