刚刚学习 ES ,在使用 term 查询时,针对一个 text 类型的字段查询不到数据的疑问,希望大佬可以解释一下。 版本信息:es 8.6 ,java 客户端是 elasticsearch-java 索引中比如有两个字段 name 和 address 。其中 name 设置为 keyword 关键词,age 设置为 text ,使用 ik 分词器。
.properties("name", propertyBuilder -> propertyBuilder
.keyword(keyWordPropertyBuilder -> keyWordPropertyBuilder))
.properties("address", propertyBuilder -> propertyBuilder
.text(textPropertyBuilder -> textPropertyBuilder.analyzer("ik_max_word").searchAnalyzer("ik_max_word"))
{
"name": "王五",
"address": "北京市昌平区"
}
.query(queryBuilder -> queryBuilder.term(termQueryBuilder -> termQueryBuilder
.field("address").value("北京市昌平区"))
该查询查询不到任何数据。
看到网上说 term 属于精确查询也就是全匹配,不太明白为什么我的这个查询查不到数据?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.