elassticsearch8.x-检索和查询:短语搜索(Match Phrase)

2025-05-12 21:24

短语搜索概念

​ Match_phrase查询是一种短语查询,它用于匹配包含指定短语的文档。与Match查询不同,Match_phrase查询只匹配包含短语的文档,而不会匹配单个词条。

匹配规则

  • **会分词:**match_phrase首先会将查询短语拆分为单个词项。例如,如果查询短语是“elastic org cn”,则将其拆分为三个词项:。

  • **必须全部匹配且顺序必须相同:**被检索字段必须包含match_phrase短语中的所有词项,并且顺序必须是相同的。比如查询短语是elasticorgcn,那么只有字段中的词项必须包含"elastic"、"org"和"cn"这三个短语,切顺序不能颠倒。

  • **Slop距离:**默认情况下被检索字段包含的match_phrase中的词项之间不能有其他词项,即slop默认为0,如果人为将slop设置为其他数值,则多个词项将允许有slop规定的距离

GET products/_search
{
 	"query":{
 		"match_phrase":{
            "name":{
            	"query":"",
            	"slop": 0
            }
 		}
 	}
}

使用语法

Slop参数

​ 在Elasticsearch的Match_phrase查询中,slop参数用于指定允许查询短语中各个词项之间的最大间隔数。它可以用来放宽查询短语中词项的严格顺序要求,从而使查询结果能够匹配更多的文档。

​ slop参数可以设置为一个非负整数,默认值为0,表示查询短语中的词项必须以查询短语中的相同顺序连续出现。当slop参数大于0时,查询短语中的词项可以以指定的最大间隔数任意顺序出现。例如,如果slop参数设置为1,则查询短语中的相邻两个词项可以最多间隔一个单词。

使用slop参数时需要注意以下几点:

  • slop参数只适用于Match_phrase查询,不适用于Match_phrase_prefix查询

  • slop参数的值越大,匹配的文档数就越多,同时查询的性能也会下降,相关度也可能下降。

相关新闻
热点
投票
查看结果
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量:

© 2025 个人网站 版权所有

备案号:苏ICP备2024108837号

苏公网安备32011302322151号