如何查询Elasticsearch中years_of_experience字段内50:0的文档?
过滤Elasticsearch中years_of_experience字段内键"50"对应值为"0"的文档
假设你的years_of_experience字段被Elasticsearch默认映射为object类型(这是处理JSON对象字段的默认方式),可以通过以下两种方式实现精准过滤:
方式一:使用term查询(精确匹配字符串值)
term查询适合精确匹配场景,因为你的目标值是字符串类型的"0",直接用该查询即可:
{ "query": { "term": { "years_of_experience.50": { "value": "0" } } } }
方式二:使用match查询(通用匹配)
如果需要更灵活的匹配逻辑(比如自动分词,不过此场景下无需),可以用match查询:
{ "query": { "match": { "years_of_experience.50": "0" } } }
关键说明
- Elasticsearch中访问object字段的嵌套属性时,使用父字段.子键的语法(即
years_of_experience.50)。 - 如果你的
years_of_experience字段被错误映射为text类型,上述查询会失效,需要先将字段映射调整为object类型才能正确查询嵌套键值。
内容的提问来源于stack exchange,提问作者Arsalan Subhan
相关产品推荐
相关产品推荐

