在我的弹性搜索中,我为以下字段添加了如下分析器,我将以逗号分隔的方式存储技能。
"skills": "Java,Engineer(IT, Non-IT),python"
这里我想索引用逗号分隔的每个字符串。在搜索中,用户可以搜索Java,Java或JAVA。技能可以在任何情况下。因此搜索应该不区分大小写。即,如果搜索是“java”,那么它应该给出带有Java或java JaVa等的记录。
这是我正在使用的分析仪。在这里,我需要进行哪些更改才能返回最大记录,无论情况如何。
{
"analysis": {
"analyzer": {
"pattern_analyzers": {
"tokenizer": "custom_pattern_tokenizer",
"lowercase": true
}
},
"tokenizer": {
"custom_pattern_tokenizer": {
"pattern": ",(?![^(]*\))",
"type": "pattern"
}
}
}
注意:我使用的是elasticsearch版本2.4
答案 0 :(得分:0)
尝试将lowercase
过滤器添加到您的分析器中:
"analysis": {
"analyzer": {
"pattern_analyzers": {
"tokenizer": "custom_pattern_tokenizer",
"filter": ["lowercase"]
}
},
"tokenizer": {
"custom_pattern_tokenizer": {
"pattern": ",(?![^(]*\))",
"type": "pattern"
}
}
}
文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/analysis-lowercase-tokenfilter.html