元数据
ES2.2版本,通过Head插件查看Es数据结果如图
传入大写进行Term和Terms查询
1. 传入大写进行Term查询
2. 传入大写进行Terms查询
传入小写进行Term和Terms查询
1. 传入小写进行Term查询
2. 传入小写进行Terms查询
terms查询只需在数组里加上多个关键词即可,比如如果要同时查询"SOLO"和"CHORUS"的话,查询语句为:
{
"query":{
"bool":{
"must":{
"terms":{
"test_singerType": ["solo","chorus"]
}
}
}
}
}
原因
在创建index对应的mapping的某个field时,如果mapping没有指定该field的标准化配置normalizer,如果写入ES的时候是大写,则搜索出来的结果也是大写的(搜索结果截图证明了这一点)。但是创建的索引确实是小写的,前面两个搜索结果图中查询条件传的是大写,所以使用term和terms的时候返回空了。
反之,但如果传的小写,则可以检索到结果。
因此在使用API的时候就要注意啦,如果是这种类型的term或者terms查询,则需要先进行大小写的转换再进行查询操作。