不为失败找理由,要为成功找方法。

es6.8keyword字段如何查询特殊字符数据

Elasticsearch | 作者 nine_sun | 发布于2020年10月15日 | 阅读数:3013

{"query":{"bool":{"filter":[{"wildcard":{"user_id":"user-"}}]}}}
查询语句类似如上,“-”这类特殊字符无法参与到查询条件中,字段不分词,通常是多个term和wildcard组合查询。
es5.5没有这个问题,换了6.8就出现这种情况了。
基于restful api调用,无法使用java的QueryParser.escape
已邀请:

locatelli

赞同来自:

具体出什么错?
另外wildcard查询里没有出现wildcard(*或?)?

nine_sun

赞同来自:

没有出错,是查不出来,因为6.x版本即使keyword字段也会进行分词,如果在原有的key后门加上.keyword查这个是可以的,这个分词对我来说没什么必要,有没有办法让他彻底不分词?

Ombres

赞同来自:

"actionTypeId" : {
"type" : "keyword"
},
"description" : {
"type" : "text"
}
可能你的mapping弄错了吧,第一个是keyword类型不分词,第二个是text类型分词

要回复问题请先登录注册