【发布时间】:2017-02-21 19:24:20
【问题描述】:
我正在使用弹性搜索,但遇到了问题。如果有人给我提示,我将非常感激。
我想分析由不同条目组成的字段“名称”或“描述”。例如,有人想搜索 Sara。如果他进入 SARA、SAra 或 sara。他应该能够得到萨拉。 弹性搜索使用分析器,使所有内容都小写。
我想实现它不区分大小写,无论用户输入的名称是大写还是小写,他/她都应该得到结果。 我正在使用 ngram 过滤器来搜索名称和小写字母,这使得它不区分大小写。但是我想确保一个人即使输入大写或小写也能得到结果。
有没有办法在弹性搜索中做到这一点?
{"settings": {
"analysis": {
"filter": {
"ngram_filter": {
"type": "ngram",
"min_gram": 1,
"max_gram": 80
}
},
"analyzer": {
"index_ngram": {
"type": "custom",
"tokenizer": "keyword",
"filter": [ "ngram_filter", "lowercase" ]
},
我附上了包含 json 示例和 search.txt 文件的 example.js 文件来解释我的问题。我希望我的问题现在会更清楚。 这是我保存两个文件的onedrive的链接。 https://1drv.ms/f/s!AsW4Pb3Y55Qjb34OtQI7qQotLzc
【问题讨论】:
标签: elasticsearch elasticsearch-2.0