这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战
本Elasticsearch相关文章的版本为:7.4.2
返回与提供的文本、数字、日期或布尔值匹配的文档。注意点:在匹配之前根据所查询的字段调用此字段的analyzer进行分析提供的文本。
该match查询是执行全文搜索的标准查询,包括用于模糊匹配的选项。
创建测试数据
POST /match_test/_doc/1
{
"my_text": "my Favorite food is cold porridge"
}
POST /match_test/_doc/2
{
"my_text": "when it's cold my favorite food is porridge"
}
match查询例子
请求数据:
POST /match_test/_search
{
"query": {
"match": {
"my_text": "Favorite"
}
}
}
相应数据:
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 0.19363809,
"hits" : [
{
"_index" : "match_test",
"_type" : "_doc",
"_id" : "1",
"_score" : 0.19363809,
"_source" : {
"my_text" : "my Favorite food is cold porridge"
}
},
{
"_index" : "match_test",
"_type" : "_doc",
"_id" : "2",
"_score" : 0.17225473,
"_source" : {
"my_text" : "when it's cold my favorite food is porridge"
}
}
]
}
}
因为match查询会对输入的数据进行分词处理,Favorite经过standard analyzer处理后就是favorite了,所以同时命中doc1和doc2。
match查询的参数
-
query -
(必需)您希望在提供的
<field>.在执行搜索之前,
match查询会分析任何提供的文本。这意味着match查询可以搜索text"文本数据类型"分析标记的字段,而不是精确的术语。 -
analyzer -
(可选,字符串)[分析器]用于将
query值中的文本转换为标记。默认为field映射的[索引分析器]。如果没有映射分析器,则使用索引的默认分析器。 -
fuzziness -
(可选,字符串)允许匹配的最大编辑距离。
-
max_expansions -
(可选,整数)查询将扩展到的最大分词数。默认为
50. -
prefix_length -
(可选,整数)用于模糊匹配的起始字符数保持不变。默认为
0. -
fuzzy_transpositions -
(可选,布尔值)如果
true,模糊匹配的编辑包括两个相邻字符的换位(ab → ba)。默认为true. -
operator -
(可选,字符串)用于解释
query值中文本的布尔逻辑。有效值为:-
OR(默认)例如,
query值capital of Hungary被解释为capital OR of OR Hungary。 -
AND例如,
query值capital of Hungary被解释为capital AND of AND Hungary。
-
-
minimum_should_match -
(可选,字符串)必须与要返回的文档匹配的最小子句数。