我想使用ES7的同义词。
我有:
同义词:angularjs,angular.js,angular js
我的期望:
查询:angularjs angular.js
查询2:Angularjs匹配:angular.js
问题:
查询:angularjs angular.js
查询2:Angularjs匹配:0命中
我用过滤器
filter:
synonym:
type: synonym
#ignore_case: true
lenient: true
synonyms_path: synonym.txt
我有一个分析器:
synonym_analyzer:
tokenizer: 'standard'
ignore_case: true
filter: [ lowercase, trim, asciifolding, elision, synonym ]
为什么我的查询中有大写字母或没有大写字母会有不同的结果?如果我的查询没有同义词,它可以完美地工作。
我如何调试它?
2条答案
按热度按时间zf9nrax11#
我的建议适用于查询angularjs和Angularjs的匹配angular.js:
Map
数据
查询:
sg24os4d2#
我遇到了同样的问题,我使用两个分析仪每个字段。
第一个分析仪是
search_analyzer
,第二个分析仪是analyzer
。当您发送搜索请求时,第一个分析器将使您的搜索模式小写,并检查您的同义词表。
举个例子:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-analyzer.html