ElasticSearch-基础-03_查询语言
2025-01-22 08:19:30    384 字   
This post is also available in English and alternative languages.

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

常用的elasticsearch查询工具有两种:

  1. 使用curl/postman等工具
  2. 使用kibana

curl/postman 既可以使用简单查询(search lite,参数都通过URL传递),也可以拼装elasticsearch dsl。 而使用 kibana 肯定是 elasticsearch dsl。


1. Search Lite API (参数都通过URL传递)

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

kibana
1
GET /news/new/_search?q=新华社

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

curl
1
curl -XGET '127.0.0.1:9200/news/new/_search?q=2018&pretty'

指定字段

curl
1
curl -XGET '127.0.0.1:9200/news/new/_search?q=content:2018&pretty'

2. Elasticsearch DSL

Elasticsearch DSL,其可以通过传递一个JSON请求来获取结果

kibana
1
2
3
4
5
6
GET /news/new/_search
{
"query": {
"match_all": {}
}
}

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

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

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

curl
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"
}
}
}'

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

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

DSL方式提供了更加灵活的方式来构建更加复杂的查询