Elasticsearch数组字段搜索问题:multi_match查询无结果排查
问题分析与解决方法
你的查询无法返回结果的核心问题是字段路径错误:
tags是包含对象的数组字段,直接指定tags作为搜索目标时,Elasticsearch无法识别要匹配数组内部的tag_text字段,自然找不到对应内容。- 正确的字段路径应该是
tags.tag_text,用来精准指向数组对象中的具体文本字段。
修正后的multi_match查询如下:
{ "query": { "multi_match": { "query": "Test Tag", "type": "cross_fields", "fields": [ "tags.tag_text", "description" ] } } }
额外补充:如果你的tags字段在索引映射中被定义为nested类型,需要改用nested查询配合multi_match才能正确搜索;但从你的文档结构来看,大概率是默认的object类型,上面的修正即可解决问题。
内容的提问来源于stack exchange,提问作者rustyshackleford
相关产品推荐
相关产品推荐

