elasticSearch查询数据,模糊搜索无法查询出来 悠悠 2022-10-06 08:53 323阅读 0赞 ### 背景: ### es在查询数据的时候,使用a字段查询可以看到b字段是有内容的,但是模糊匹配b字段,是查询不到数据的。 ### 复现事件经过 ### **第一种正常**: select \* from table where a like "%%"; 结果,明显看到b存在内容:我是b字段 \{ "a":"我是a字段", "b":"我是b字段" \} **第二种不正常**:select \* from table where b like "%%"; 没有命中 ### 思考: ### 这是不是很不合理? 对不合理! 我有内容,你凭啥不查出来 ### **原因:** ### 设置es存储字段的时候有个ignore\_above属性有问题,如果设置的过短,将会导致超过这个长度的数据都不被索引,所以查不出来 ### **解决:** ### 把ignore\_above改长,解决问题。 这里还有个注意的点,被索引的数据也是从修改之后被索引,历史的数据仍然查不到。 PUT my_index { "mappings": { "my_type": { "properties": { "message": { "type": "keyword", "ignore_above": 20 } } } } }
还没有评论,来说两句吧...