节点
#查看节点信息
curl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'
#查看所有节点信息
curl -XGET 'http://127.0.0.1:9200/_nodes?pretty=true'
#查看指定节点的信息
curl -XGET 'http://127.0.0.1:9200/_nodes/nodeName?pretty=true'
索引
#查看所有索引
curl -XGET 'http://localhost:9200/_cat/indices?v'
#创建索引
curl -XPUT "http://localhost:9200/test_index"
#创建索引,指定分片和副本的数量
curl -H "Content-Type: application/json" -XPUT "http://localhost:9200/test_index?pretty" -d'
{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 1
}
}'
#创建索引(test_index)、创建类型(product)、指定mapping的数据
curl -H "Content-Type: application/json" -XPUT "http://localhost:9200/test_index?pretty" -d'
{
"mappings": {
"product" : {
"properties": {
"id" : {
"type": "text",
"index": "false"
},
"userName" : {
"type": "text",
"index": "true"
}
}
}
}
}'
#在已创建的索引下添加类型的mapping
curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/test_index/person/_mapping?pretty' -d '{
"person" : {
"properties" : {
"date" : {
"type" : "long"
},
"name" : {
"type" : "text",
"index" : "false"
},
"status" : {
"type" : "integer"
},
"type" : {
"type" : "integer"
}
}
}
}'
#获取索引信息
curl -XGET "http://localhost:9200/test_index?pretty"
#查看索引的统计信息
curl -XGET "http://localhost:9200/test_index/_stats?pretty"
#获取索引的mappings
curl -XGET "http://localhost:9200/test_index/_mappings?pretty"
#删除索引
curl -XDELETE "http://localhost:9200/test_index"
文档
#插入数据
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/person/?pretty' -d '{"date":11222, "name": "abc", "status": 1,"type":134}'
#查询索引中的全部内容
curl -XGET "http://localhost:9200/test_index/_search?pretty"
#查询某个type的内容
curl -XGET "http://localhost:9200/test_index/person/_search?pretty"
#根据文档的id查询文档,如果需要查询多个字段使用逗号进行隔开,不指定就是显示全部字段
curl -XGET "http://localhost:9200/test_index/person/zbyJjXYB2UzVbYB2ykZa?_source=name,type&pretty"
#根据条件进行简单查询
curl -XGET "http://localhost:9200/test_index/person/_search?q=name:&pretty"
#更新文档内容
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/person/0LyYjXYB2UzVbYB2qUZi/_update?pretty' -d '{"doc":{ "name": "wxg111", "status": 1,"type":134}}'
#删除文档内容
curl -XDELETE "http://localhost:9200/test_index/person/zryOjXYB2UzVbYB2AkbI?&pretty"
DSL
#查询索引下所有文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} }}'
#查询索引下所有文档,并返回第一个文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"size":1}'
#匹配所有并返回第1到10
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"from": 0,"size": 10}'
#根据属性降序排序(size未指定默认为10)
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"sort": {"status": { "order": "desc" }}}'
#返回name和status这2个fields(_source里),相当于sql:SELECT name, status FROM....
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"_source": ["name", "status"]}'
#返回status为1的,相当于sql的WHERE
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match": { "status": 1 } }}'
#返回type=77 && status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": {"bool": {"must": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'
#返回type=77 || status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": {"bool": {"should": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'
#返回type=77 非 status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": {"bool": {"must_not": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'
#返回type是134但status不是2的
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": {"bool": { "must": [{ "match": { "type": 134 } }],"must_not": [{ "match": { "status": 2 } }]}}}'
# 相当于sql: SELECT COUNT() from bank GROUP BY state ORDER BY COUNT() DESC。
#「size=0」是设置不显示search hit
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"size": 0,"aggs": {"group_by_state": {"terms": {"field": "status"}}}}'
#按state分组并计算(组)平均balance(默认返回前10个按state的COUNT的降序(DESC)排)
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"size": 0,"aggs": {"group_by_state": {"terms": {"field": "status"},"aggs": {"average_balance": {"avg": {"field": "type"}}}}}}'