You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch中用通配符查询文档ID无结果,求解决方案

Elasticsearch 按ID前缀/通配符查询的解决方案

首先明确:ids查询是精确匹配文档ID的,不支持通配符、模糊匹配这类语法,所以你用transaction+0+*作为值查不到结果是正常的。

下面给你几个可行的解决思路:

方法1:使用wildcard查询直接匹配_id字段

直接针对_id字段做通配符匹配,示例请求如下:

{
    "query": {
        "wildcard": {
            "_id": "transaction+0+*"
        }
    }
}

方法2:使用prefix查询(更高效)

因为你的目标ID都是以transaction+0+开头的,用prefix查询比wildcard更高效,适合前缀匹配场景:

{
    "query": {
        "prefix": {
            "_id": "transaction+0+"
        }
    }
}

方法3:拆分ID字段存入文档(推荐长期方案)

如果这类查询比较频繁,建议把ID里的信息拆分出来单独存储,比如在文档里新增version(版本号,比如0、1)、transaction_id(比如1234、1235)字段,这样后续查询可以直接用精确匹配或者范围匹配,性能更好,也更灵活。

示例文档结构:

{
    "_id": "transaction+0+1234",
    "version": 0,
    "transaction_id": 1234,
    // 其他字段...
}

对应的查询语句:

{
    "query": {
        "term": {
            "version": 0
        }
    }
}

内容的提问来源于stack exchange,提问作者SAS2Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:02:20