在 Elasticsearch 2.x 中,如果我仍然想使用“lowercase”过滤器(用于实现大小写不敏感的搜索),但需要区分首字母缩写“CAN”和普通英语单词“can”,该怎么办?
我正在使用的自定义分析器如下:
我正在使用的自定义分析器如下:
"analyzer": {
"tight": {
"type": "custom",
"tokenizer": "standard",
"stopwords": "_english_",
"filter": ["lowercase", "asciifolding"]
}
}
在索引时间,当大写首字母缩写“CAN”被我的分析器处理时,它会变成英语单词“can”。然后当我搜索“CAN”时,我会得到所有包含英语单词“can”的文档。我只想要包含大写单词“CAN”的文档。可能还有其他缩写符合类似的模式。
如何解决这个问题?
ignore_case
设置为false
,否则can
和CAN
将被视为相同。 - Val