我想忽略搜索时的大小写。这样做最不冗长的方法是什么。例如,类似:
"mappings": {
"_doc": {
"properties": {
"name": {"type": "keyword", "analyzer": "ignore_case"}
}
}
}
以上是伪代码,但是执行此操作的最佳方法是什么?基本上我想说一个像这样的词:
"Hello"
并让“ Hello”或“ HELLO”或“ hELlo”或“ hello”与之匹配。
答案 0 :(得分:3)
关键字数据类型不使用Analyzers
。您需要使用Normalizer
如果您打算在这种情况下使用keyword
,则需要创建一个filter
配置为lowercase
的自定义Normalizer,并且您的映射应如下所示:
PUT <your_index_name>
{
"settings":{
"analysis":{
"normalizer":{
"my_custom_normalizer":{
"type":"custom",
"filter":[
"lowercase"
]
}
}
}
},
"mappings":{
"mydocs":{
"properties":{
"mytext":{
"type":"keyword",
"normalizer":"my_custom_normalizer"
}
}
}
}
}
我认为这是最冗长的方法!希望对您有帮助!