ElasticSearch story(二)
调优一个问题,碰到了一个坎:大家看一下下面两个字符串:
2018-10-16 18:01:34.000 abcdewfrwfe
2018-10-16 18:01:50.123 testAmily012
我在使用term进行查询的时候:
{
term:{
message:abcdewfrwfe
}
}
是可以检索到数据的,但是:
{
term:{
message:testAmily012
}
}
却返回数据数据为0.
百思不得其解啊。通过index/_mapping,没看出来什么特别的;后来想到要看看到底es是怎样来分词的,于是查了一下,发现没有API查看现有的索引分词情况,但是有一个“分析器,可以通过这个分析器来模拟一下真是的分词情况,我顿时眼前一亮:
GET index/_analyze
{
"analyzer": "standard",
"text": "Text to analyze"
}
发现了什么?
变成了小写,是的变成了小写,所以我原样来进行查询是不可以的,我记起来之前确实看过一篇文章介绍,分词后将会变成小写,这样在处理查询的时候需要将查询内容处理为小写。
这个问题只是在term中有这个问题,如果是query-string则不需要。