我使用以下自定义分析器
创建索引"analyzers":[
{
"name":"shinglewhite_analyzer",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"charFilters":[
"map_dash"
],
"tokenizer":"whitespace",
"tokenFilters":[
"shingle"
]
}
],
"charFilters":[
{
"name":"map_dash",
"@odata.type":"#Microsoft.Azure.Search.MappingCharFilter",
"mappings":[ "_=> " ]
}
]
问题是来自输入的像ice_cream这样的单词与查询冰淇淋不匹配,但它与冰淇淋相匹配。有人可以帮助我理解这是如何工作的,如果我做错了什么?
此外,我们想查询“冰淇淋”以匹配“冰淇淋”,“冰淇淋”和“冰淇淋”,但有利于那些。
答案 0 :(得分:6)
要映射到空格,请使用以下表示法(我们将更新文档以包含此信息):
file.txt
此外,默认情况下,木瓦标记过滤器用空格分隔标记。如果您想将后续令牌加入一个没有分隔符的令牌中,您需要自定义过滤器,如下例所示:
{
"name":"map_dash",
"@odata.type":"#Microsoft.Azure.Search.MappingCharFilter",
"mappings":[ "_=>\\u0020" ]
}
对于令牌ice_cream的这两项更改,您的分析仪将生成:冰,冰淇淋,奶油。
我希望有帮助