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

Elasticsearch 部分文本匹配查询:如何通过'ben frank'找到目标文档?

如何用"ben frank"匹配包含全名的Elasticsearch文档?

需求场景

需要通过搜索关键词 ben frank,匹配到如下包含完整姓名的文档:

{
   "first_name" : "Benjamin",
   "last_name" : "Franklin"
}

对应的Elasticsearch查询语句

可以借助multi_match查询的phrase_prefix类型实现该需求,具体语句如下:

GET /person/_search
{
  "query": {
    "multi_match": {
      "query": "ben frank", 
      "fields": ["first_name", "last_name"],
      "type": "phrase_prefix"
    }
  }
}

逻辑说明

  • multi_match支持同时在多个字段上执行匹配操作
  • 设置type: phrase_prefix后,Elasticsearch会将查询文本拆分为前缀短语:"ben"会匹配first_name字段中以"ben"开头的内容(如"Benjamin"),"frank"会匹配last_name字段中以"frank"开头的内容(如"Franklin"),以此命中目标文档

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:47:05