ElasticSearch Bool查询突然无正确结果求助排查
排查Elasticsearch Bool查询无结果问题
问题背景
- 两天前查询正常,当前简单Bool查询无法返回正确结果
- 请求地址:
http://your_es_ip:9200/index_name/_search - 查询语句:
{ "size": 0, "query": { "bool": { "must": [ { "term": { "ref_partner_id.keyword": { "value": "MOCP013141" } } } ] } } }
- 示例文档:
{"_index":"credit_line_applications","_type":"_doc","_id":"WRCL0014686","_version":4,"_seq_no":8756,"_primary_term":1,"found":true,"_source":{"ref_partner_id":"MOCP013141"}}
_explainAPI返回结果:
{ "matched": false, "explanation": { "value": 0.0, "description": "User requested \"match_none\" query.", "details": [] } }
排查步骤
检查索引全局过滤/别名过滤
- 查看索引是否设置了全局查询过滤规则,导致所有查询被附加
match_none条件:GET /credit_line_applications/_settings - 检查关联别名是否包含过滤条件:
GET /_alias/credit_line_applications
- 查看索引是否设置了全局查询过滤规则,导致所有查询被附加
验证查询本身的有效性
- 直接在终端或Kibana Dev Tools执行原始查询(修改
size为10以便查看结果),排除客户端请求拼接错误:curl -X POST "http://your_es_ip:9200/credit_line_applications/_search" -H "Content-Type: application/json" -d '{ "size": 10, "query": { "bool": { "must": [ { "term": { "ref_partner_id.keyword": "MOCP013141" } } ] } } }'
- 直接在终端或Kibana Dev Tools执行原始查询(修改
确认字段映射未变更
- 检查
ref_partner_id字段的映射,确保.keyword子字段存在且类型正确:GET /credit_line_applications/_mapping/field/ref_partner_id
- 检查
排查索引状态异常
- 检查索引是否被设置为只读:
GET /credit_line_applications/_settings/index.blocks.read_only_allow_delete - 检查索引是否被冻结:
GET /credit_line_applications/_settings/index.frozen
- 检查索引是否被设置为只读:
检查插件或查询模板干扰
- 查看集群已安装插件,排查是否有修改查询逻辑的插件(如行级安全插件):
GET /_cat/plugins?v - 确认是否使用了查询模板,导致原始查询被替换为
match_none。
- 查看集群已安装插件,排查是否有修改查询逻辑的插件(如行级安全插件):
验证文档索引状态
- 用文档ID直接查询,确认文档仍存在于索引中:
GET /credit_line_applications/_doc/WRCL0014686 - 尝试用
match查询替代term查询测试匹配情况:curl -X POST "http://your_es_ip:9200/credit_line_applications/_search" -H "Content-Type: application/json" -d '{ "size": 10, "query": { "match": { "ref_partner_id": "MOCP013141" } } }'
- 用文档ID直接查询,确认文档仍存在于索引中:
内容的提问来源于stack exchange,提问作者Ankitha N
相关产品推荐
相关产品推荐

