elastic search中的match phase和近似匹配的原理

本文介绍了Elasticsearch中的短语匹配(Phrase Match)和近似匹配(Proximity Match)。短语匹配要求多个term形成短语且在文档中连续出现。而近似匹配允许term有一定距离,但距离越近,文档得分越高。match_phrase是短语匹配的基础,依赖于term的位置信息。slop参数用于控制term在文档中移动的最大次数,从而实现近似匹配的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • phrase match:短语匹配,将多个term作为一个短语,一起去搜索,只有包含这个短语的doc才会作为结果返回。
  • proximity match:近似匹配

1、java spark,就靠在一起,中间不能插入任何其他字符,就要搜索出来这种doc,使用短语匹配
2、java spark,但是要求,java和spark两个单词靠的越近,doc的分数越高,排名越靠前,使用近似匹配

GET /forum/article/_search
{
  "query": {
    "match": {
      "content": "java spark"
    }
  }
}

单单包含java的doc也返回了,不是我们想要的结果

POST /forum/article/5/_update
{
  "doc": {
    "content": "spark is best big data solution based on scala ,an programming language similar to java spark"
  }
}

将一个doc的content设置为恰巧包含java spark这个短语

match_phrase语法:

GET /forum/article/_search
{
    "query": {
        "match_phrase": {
            "content": "java spark"
        }
    }
}

这里引入term position的概念,标识一个term在do

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值