es默认是区分大小写的,当我用logstash 导数据到es中是,再查询查询不到数据,发现是原来的大写字母全部变为小写问题引起的,那么我们就让es的字段全部大写就好了,但是一个隐形的问题迟迟解决不了。
创建索引
curl -X PUT "localhost:9200/index?pretty"
查询某个index数据
curl -XGET http://127.0.0.1:9200/index/_search?pretty
删除
curl -XDELETE http://127.0.0.1:9200/index
?pretty
条件查询:
curl -H "Content-Type:application/json" -XGET http://127.0.0.1:9200/index/_search?pretty -d '{"query":{ "term" : { "BZ.keyword" : { "value" : "aaaa", "boost" : 1.0 } }}}'
es中bz是小写所以查询不到数据
查询后网上方法说 可以
第一种方法:
filter {
mutate {
uppercase => ["fieldname"]
}
}
第二种方法:
jdbc {
...
lowercase_column_names => false
}
经过实测 发现第二种方法可行,但是入库的es中永远只有一条;
后来发现原来 cof配置文件中的字段对应 id 原来是小写,转换后也需要大写才行。