使用curl命令操作Elasticsearch
获取Elasticsearch集群的状态
curl命令参数详解
-X : 设置HTTP请求方法,包括HEAD、GET、POST、PUT、DELETE
-d : 指定发送的数据内容
-H : 添加HTTP请求头信息
创建一个新的索引,使用pretty参数使输出格式更易读
curl -XPUT 'http://118.195.173.53:9200/student?pretty'
列出所有索引信息,v参数用于显示表头
curl -XGET 'http://118.195.173.53:9200/_cat/indices?v'
查看特定索引的详细信息
curl -XGET 'http://118.195.173.53:9200/user'
删除一个索引
curl -XDELETE 'http://118.195.173.53:9200/student'
添加或更新文档数据
curl -H "Content-Type:application/json" -XPOST 'http://118.195.173.53:9200/student/_doc/1001' -d '{
"id":1001,
"name":"huyongjian"
}'
更新文档中的某个字段
curl -H "Content-Type:application/json" -XPOST 'http://118.195.173.53:9200/student/_update/1001' -d '{
"doc":{
"id":11
}}'
检索某一条文档记录
curl -XGET 'http://118.195.173.53:9200/student/_doc/1001'
删除某一条文档记录
curl -XDELETE "http://118.195.173.53:9200/student/_doc/1001"
根据条件删除文档记录
curl -H "Content-Type:application/json" -XPOST 'http://118.195.173.53:9200/student/_doc/_delete_by_query' -d '{
"query":{
"match":{"name":"huyongjian"}
}}'
搜索指定索引下的所有文档
curl -XGET http://118.195.173.53:9200/student/_search
仅获取指定索引中所有文档的name字段
curl -XGET http://118.195.173.53:9200/student/_search?_source=name
查询全部数据
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"match_all":{}}}'
限制返回数量
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"match_all":{}},"size":2}'
指定返回字段
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"match_all":{}},"_source":["id","name"]}'
对结果进行排序
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"match_all":{}},"sort":{"id":{"order":"desc"}}}'
执行匹配查询
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"match":{"name":"huyongjian"}}}'
执行多条件组合查询
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"bool":{"must":{"match":{"name":"huyongjian22"}}}}}'
must_not:表示不包含该条件,should:表示包含该条件,但非必需
精确匹配查询
curl -H "Content-Type:application/json" -XGET http://118.195.173.53:9200/student/_search?pretty -d '{"query":{"term":{"name":"huyongjian"}}}'
多个值的精确匹配
-d '{"query":{"terms":{"name":["huyongjian","huyongjian2"]}}}'
范围条件查询
-d '{"query":{"range":{"age":{"gt":"20","lte":"25"}}}}'
查看索引映射结构
curl -XGET http://118.195.173.53:9200/student/_mapping