ElasticSearch-query-multi-match多匹配查询
2025-01-22 08:19:30    369 字   
This post is also available in English and alternative languages.

ElasticSearch版本:6.5.0(点击跳转官方文档)

多匹配查询


1. ElasticSearch 多匹配查询

关键字multi_match,通常用在查询多个fields时。

fields属性指定需要查询的字段。

在news索引,new类型下,所有字段中,查询带有’江苏’的结果

1
2
3
4
5
6
7
8
GET /news/new/_search
{
"query": {
"multi_match": {
"query": "江苏"
}
}
}

在news索引,new类型下,所有字段中,查询带有’18’的结果

1
2
3
4
5
6
7
8
curl -H "Content-Type: application/json" -XGET '127.0.0.1:9200/news/new/_search' -d '
{
"query":{
"multi_match":{
"query":"18"
}
}
}'

在news索引,new类型下,‘title’、‘cont*’ 字段中,查询带有’江苏’的结果

1
2
3
4
5
6
7
8
9
GET /news/new/_search
{
"query": {
"multi_match": {
"query": "江苏",
"fields":["title","cont*"]
}
}
}

news索引、new类型下,查询source、content两个字段包含’赌博’的document,返回数量为2。

1
2
3
4
5
6
7
8
9
10
GET /news/new/_search
{
"query": {
"multi_match": {
"query": "赌博",
"fields":["source","content"]
}
},
"size": 2
}

news索引、new类型下,查询source、content两个字段包含’赌博’的document,返回数量为2,只返回三个指定字段:‘title’,‘gmt_publish’,‘category’

1
2
3
4
5
6
7
8
9
10
11
GET /news/new/_search
{
"query": {
"multi_match": {
"query": "赌博",
"fields":["source","content"]
}
},
"size": 2,
"_source": ["title","gmt_publish","category"]
}

2. Reference