与此问题有点关系并继续: Azure Search Analyzer
我想使用keywordanalyzer进行单词收集.
我们有不同字段的文档(产品),如product_name,品牌,类别等.
要实现基于关键字的排名(评分),我想添加一个Collection(Edm.String)字段,其中包含不同的(未标记的!!)关键字,如:"brown teddy"或"green bean".
为实现这一点,我考虑使用具有以下定义的keywordanalyzer:
//字段定义:
{
"name":"keyWordList",
"type":"Collection(Edm.String)",
"analyzer":"keywordAnalyzer"
}
...
"analyzers":[{
"name":"keywordAnalyzer ",
"@ odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer":"keywordTokenizer",
"tokenFilters":["lowercase","classic"]
}]
...
"tokenizers": [{
"name":"keywordTokenizer",
"@ odata.type":"#Microsoft.Azure.Search.KeywordTokenizer"
}
现在,在上传了一些文档后,我通过输入完全选择的关键字来找不到这些字段.例如,这是一个包含以下字段数据的文档:
"keyWordList":["蓝熊","蓝熊","蓝熊123"]
我无法通过查询以下搜索找到任何结果:
{search:"blue bear",count:"true",queryType:"full"}
这也是我尝试过的:
最后,我能得到的唯一结果是将整个搜索阶段作为单个术语发送.但这应该由分析仪完成,对吧?!
{search:"\"blue bear \"",count:"true",queryType:"full"}
用户不知道他们是否搜索现有关键字或执行标记化搜索.这就是为什么这不是一个选择.
我的这个问题有什么解决办法吗?或者这种关键词(高分)搜索可能有更好/更容易的方法吗?
谢谢!