小编lde*_*ewi的帖子

如何在azure-search中实际使用关键字分析器?

与此问题有点关系并继续: 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"}

这也是我尝试过的:

  • 使用预定义的keywordanalyzer而不是自定义的- >没有成功
  • 而不是使用Collection(Edm.String)我只是用普通的String字段测试它,只包含一个关键字- >没有成功
  • 将字段定义块中的分析器拆分为searchAnalyzer ="lowercaseAnalyzer",filterAnalyzer ="keywordAnalyzer"反之亦然- >没有成功

最后,我能得到的唯一结果是将整个搜索阶段作为单个术语发送.但这应该由分析仪完成,对吧?!

{search:"\"blue bear \"",count:"true",queryType:"full"}

用户不知道他们是否搜索现有关键字或执行标记化搜索.这就是为什么这不是一个选择.

我的这个问题有什么解决办法吗?或者这种关键词(高分)搜索可能有更好/更容易的方法吗?

谢谢!

keyword azure analyzer azure-cognitive-search

1
推荐指数
1
解决办法
1218
查看次数

标签 统计

analyzer ×1

azure ×1

azure-cognitive-search ×1

keyword ×1