如何在azure搜索中实际使用关键字分析器?
与这个问题有点关联和延续: 我想使用关键字分析器来收集单词 我们有不同领域的文件(产品),如产品名称、品牌、分类等如何在azure搜索中实际使用关键字分析器?,azure,keyword,analyzer,azure-cognitive-search,Azure,Keyword,Analyzer,Azure Cognitive Search,与这个问题有点关联和延续: 我想使用关键字分析器来收集单词 我们有不同领域的文件(产品),如产品名称、品牌、分类等 为了实现基于关键字的排名(评分),我想添加一个集合(Edm.String)字段,其中包含不同的(未分类!!)关键字,如:“brown teddy”或“green bean” 为了实现这一点,我考虑使用具有以下定义的关键字分析器: //字段定义: { “名称”:“关键字列表”, “类型”:“集合(Edm.String)”, “分析器”:“关键字分析器” } … “分析仪”:[ {
为了实现基于关键字的排名(评分),我想添加一个集合(Edm.String)字段,其中包含不同的(未分类!!)关键字,如:“brown teddy”或“green bean”
为了实现这一点,我考虑使用具有以下定义的关键字分析器: //字段定义:
{
“名称”:“关键字列表”,
“类型”:“集合(Edm.String)”,
“分析器”:“关键字分析器”
}
…
“分析仪”:[ {
“名称”:“关键字分析器”,
“@odata.type”:“#Microsoft.Azure.Search.CustomAnalyzer”,
“标记器”:“关键字标记器”,
“令牌过滤器”:[“小写”、“经典”]
}]
…
“标记化者”:[{
“名称”:“关键字标记器”,
“@odata.type”:“#Microsoft.Azure.Search.KeywordTokenizer”
} 现在,在上传了一些文档之后,我只是无法通过准确输入所选的关键字来找到字段。 例如,文档包含以下字段数据:
“关键字列表”:[ “蓝熊”, “蓝熊”, “蓝熊123” ] 我无法通过查询以下搜索找到任何结果: { 搜索:“蓝熊”, 计数:“正确”, 查询类型:“完整” } 以下是我也尝试过的:
- 使用预定义的关键字分析器而不是自定义的->不成功
- 我没有使用Collection(Edm.String),而是用一个普通的字符串字段测试它,该字段只包含一个关键字->不成功
- 将字段定义块中的分析器拆分为searchAnalyzer=“lowercaseAnalyzer”和filterAnalyzer=“keywordAnalyzer”反之亦然->未成功
长答覆: 让我解释一下分析器是如何在查询处理期间应用的,以及它是如何在文档索引期间应用的 在索引方面,您定义的分析器独立处理关键字列表集合的元素。最终在反向索引中出现的术语包括:
- blue bear(因为您使用的是小写过滤器,所以blue bear和blue bear被标记为相同的术语)
- 蓝熊123 正如您所期望的,blue bear是一个术语,而不是在空间上拆分为两个术语,因为您使用的是关键字标记器。blue bear 123也是如此
我希望这有助于您理解所观察到的行为。请注意,您可以使用来测试自定义分析器的输出。谢谢您非常详细的回答。您能给我一些建议,在我的情况下如何使用关键字分析器,或者我最好使用另一种方法吗?目前我所能想到的就是制作s每个查询由dup执行