ElasticSearch 查询语法
1.查询集群的基本运行状况-health
curl -XGET 'localhost:9200/_cat/health?v&pretty'
2.集群的节点信息
curl -XGET 'localhost:9200/_cat/nodes?v&pretty'
3.集群 中的索引信息
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
4.根据id查询所需数据
curl -XGET 'http://localhost:9200/index/_type/id?'
"""
语法:ip +/索引/type/id?
"""
5.查询所有数据(浏览器默认返回10条数据)
"""
浏览器查询
"""
http://localhost:9200/index/type/_search?q=*
curl 查询
$ curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query": { "match_all": {} }
}'
6.分页查询 (from, size)
- from 偏移,默认为0
- size 返回的结果数,默认为10
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query": { "match_all": {} },
"from":1,
"size":2
}'
7.多词条查询(term,terms)
term query会去倒排索引中寻找确切的term,它并不知道分词器的存在, 这种查询适合keyword、numeric、date等明确值的
- term:查询某个字段里含有某个关键词的文档
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query": {
"term": {
"title": "blog"
}
}
}'
9.指定查询结果的字段 (_source)
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query":{
"match_all":{}
},
"_source":["product","account"],
"from": 1,"size": 1
}'
10.指定查询范围(range)
范围查询(range)即返回指定范围的文档,多用于数值型和日期型中。
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query":{
"range":{
"publish_time":{
"lte":"2019/05/24"
}
}
},
"from": 1,
"size": 1
}'
- gte :大于或等于
- gt :大于
- lte :小于或等于
- lt :小于
11.排序(sort)
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{
"query": {
"match_all": {}
},
"sort":[
{"publish_time":"desc"},
{"id":"asc"}
]
}'
12.prefix前缀匹配查询
curl -XGET 'localhost:9200/index/type/_search?pretty' -d '
{"query":
{"prefix":{
"ad_type":{
"value":"C" # 查询ad_type以C开头的内容
}
}
}
}'