首页/数据/NoSQL 速查/wildcard 与 prefix 通配查询
Elasticsearch89 条

wildcard 与 prefix 通配查询

wildcard 支持 * 与 ? 通配符,prefix 只匹配前缀;两者作用在词条层面,对 keyword 字段匹配整串,对 text 字段匹配单个词条,扫描成本随通配范围上升。

NoSQL 速查数据更新于 2026-10-12
通配符* 任意多个字符、? 单个字符(wildcard)
大小写case_insensitive 可放宽匹配(默认区分)
代价前缀通配可走词条前缀索引,d 开头以外的前导通配要扫大量词条

示例

示例
GET /my-index/_search
{
  "query": {
    "wildcard": {
      "user.id": { "value": "ki*y", "case_insensitive": true }
    }
  }
}

GET /my-index/_search
{ "query": { "prefix": { "user.id": "ki" } } }
以 * 开头的模式会遍历大量词条,量级大的索引上容易拖慢集群,尽量用前缀或 n-gram 方案替代。

易错点

  • text 字段的 wildcard 只在单个词条内匹配,跨词空格查询不会命中
  • rewrite 模式影响评分与性能,过滤场景可显式指定 constant_score 包装

数据来源与参考

  • Elasticsearch Guide: Wildcard query
  • Elasticsearch Guide: Prefix query
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌