首页/数据/NoSQL 速查/regexp 与 fuzzy 模糊查询
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条
ClickHouse56 条时序与列式28 条选型与架构50 条

regexp 与 fuzzy 模糊查询

regexp 使用 Lucene 正则语法匹配词条(不是完整 POSIX 正则),fuzzy 按编辑距离容错;两者都作用于词条,范围过宽时成本高。

NoSQL 速查数据更新于 2026-10-12
regexp 语法支持 . * ? + {} [] | () 等,默认整词条匹配
fuzzy 参数fuzziness(0/1/2/AUTO)、prefix_length、transpositions
限制regexp 可通过 max_determinized_states 限定资源,默认 10000

示例

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

GET /my-index/_search
{
  "query": {
    "fuzzy": { "user.id": { "value": "kimchy", "fuzziness": "AUTO", "prefix_length": 1 } }
  }
}
fuzzy 匹配的是索引中的词条:对 text 字段按分词后的词条容错,对 keyword 则按整串编辑距离。

易错点

  • regexp 写法按 Lucene 语法,用 PCRE 语法的贪婪分组可能直接报解析错误
  • AUTO fuzziness 对长度不同的词自动取 1 或 2,短词容错命中看似无关的结果要留意

数据来源与参考

  • Elasticsearch Guide: Regexp query
  • Elasticsearch Guide: Fuzzy query
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌