Elasticsearch(14) match_phrase_prefix的使用

elasticsearch version: 7.10.1

语法

match_phrase_prefix 是 Elasticsearch 中的一个查询类型,它用于执行前缀匹配短语查询。它允许你找到以特定短语开始的文档,而不是仅仅匹配单个单词的前缀。

{  
  "match_phrase_prefix": {  
    "field_name": {  
      "query": "your_phrase_prefix",  
      "max_expansions": 50  
    }  
  }  
}
  • field_name:你想在其中执行查询的字段名。
  • query:你想匹配的短语前缀。
  • max_expansions(可选):查询将展开为多少个前缀。默认值是 50。增加这个值可能会增加查询的执行时间,但可能会返回更多的结果。

案例1

索引创建

查询product_name 字段以 “apple i” 开头的文档

PUT /products_index  
{  
  "mappings": {  
    "properties": {  
      "product_name": {  
        "type": "text"  
      }  
    }  
  }  
}

文档插入

POST /products_index/_doc/1  
{  
  "product_name": "Apple iPhone 13"  
}  
  
POST /products_index/_doc/2  
{  
  "product_name": "Apple iPad Pro"  
}  
  
POST /products_index/_doc/3  
{  
  "product_name": "Samsung Galaxy S21"  
}

查询语句

GET /products_index/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "product_name": {  
        "query": "apple i"  
      }  
    }  
  }  
}
GET /products_index/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "product_name": {  
        "query": "apple",  
        "max_expansions": 1  
      }  
    }  
  }  
}

在这个查询中,我们设置了 max_expansions 为 1,这意味着查询将只展开为最多一个前缀。因此,这个查询可能只返回 “Apple iPhone 13”,因为它是在索引中遇到的第一个以 “apple” 开头的 product_name。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值