Azure 搜索建议器
Azure Search Suggester
Azure 搜索中的建议者只有 1 个 SearchMode,它将匹配字段中的任何单词。虽然这可能适用于许多应用程序,但也不适合许多其他应用程序。
有什么方法可以配置建议器,以便只有在字段开头匹配时才会发生匹配?
非常感谢您的帮助。
目前建议中只支持中缀匹配。
考虑创建一个自定义分析器,在索引时从您的文档中生成单词前缀:
{
"name":"names",
"fields": [
{ "name":"id", "type":"Edm.String", "key":true, "searchable":false },
{ "name":"partialName", "type":"Edm.String", "searchable":true, "searchAnalyzer":"standard", "indexAnalyzer":"prefixAnalyzer" }
],
"analyzers": [
{
"name":"prefixAnalyzer",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer":"standard",
"tokenFilters":[ "lowercase", "my_edgeNGram" ]
}
],
"tokenFilters": [
{
"name":"my_edgeNGram",
"@odata.type":"#Microsoft.Azure.Search.EdgeNGramTokenFilter",
"minGram":2,
"maxGram":20
}
]
}
请注意,partialName 字段使用标准分析器进行搜索,使用自定义 (prefixAnalyzer) 分析器进行索引。您现在可以发出带有单词前缀作为查询词的常规搜索请求。
您可以从我们关于 Analysis in Azure Search 的文档页面了解有关 EdgeNGramTokenFilter 的更多信息。
如果有帮助请告诉我。
Azure 搜索中的建议者只有 1 个 SearchMode,它将匹配字段中的任何单词。虽然这可能适用于许多应用程序,但也不适合许多其他应用程序。 有什么方法可以配置建议器,以便只有在字段开头匹配时才会发生匹配? 非常感谢您的帮助。
目前建议中只支持中缀匹配。
考虑创建一个自定义分析器,在索引时从您的文档中生成单词前缀:
{
"name":"names",
"fields": [
{ "name":"id", "type":"Edm.String", "key":true, "searchable":false },
{ "name":"partialName", "type":"Edm.String", "searchable":true, "searchAnalyzer":"standard", "indexAnalyzer":"prefixAnalyzer" }
],
"analyzers": [
{
"name":"prefixAnalyzer",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer":"standard",
"tokenFilters":[ "lowercase", "my_edgeNGram" ]
}
],
"tokenFilters": [
{
"name":"my_edgeNGram",
"@odata.type":"#Microsoft.Azure.Search.EdgeNGramTokenFilter",
"minGram":2,
"maxGram":20
}
]
}
请注意,partialName 字段使用标准分析器进行搜索,使用自定义 (prefixAnalyzer) 分析器进行索引。您现在可以发出带有单词前缀作为查询词的常规搜索请求。
您可以从我们关于 Analysis in Azure Search 的文档页面了解有关 EdgeNGramTokenFilter 的更多信息。
如果有帮助请告诉我。