Elasticsearch启动后是一个 http 服务,默认在本地的 9200 端口。可以通过 curl 或者 Kibana
控制台进行 *** 作。使用 curl 的命令格式如下:
$ curl -X' : / ? ' -d '' 1
VERB:HTTP 方法,如 GET、POST、PUT、HEAD、DELETe PROTOCOL:http 或者 https 协议
HOST:Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
PORT:Elasticsearch HTTP服务所在的端口,默认为 9200
PATH: API路径
QUERY_STRING:一些可选的查询请求参数,例如?pretty参数将使请求返回更加美观易读的JSON数据
BODY:一个JSON格式的请求主体(如果请求需要的话)
查看集群健康状态
浏览器上访问:
http://192.168.8.128:9200/_cat/health?v
Linux通过curl访问:
curl -XGET ‘http://192.168.8.128:9200/_cat/health?v’
集群状态:
绿色代表一切正常(集群功能齐全)。
黄色意味着所有节点都是可用的,但是某些节点没有备份。
红色则代表因为某些原因,某些节点不可用。
注意,即使是集群状态是红色的,集群仍然是部分节点可用的(它仍然会利用可用的分片来响应搜索请求),但是你需要尽快修复它,避免丢失数据。
查看节点信息
http://192.168.8.129:9200/_cat/nodes?v
查看集群节点 * 表示master节点
curl -XGET ‘http://192.168.8.128:9200/_cat/nodes?v’
查看所有索引
curl -XGET ‘http://192.168.8.128:9200/_cat/indices?v’
创建索引
curl -XPUT ‘http://192.168.8.128:9200/test2?pretty’
pretty:以美观的形式打印出JSON响应
创建索引并分片
curl -XPUT -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3?pretty’ -d ‘{“settings”:{“number_of_shards”:5,“number_of_replicas”:1}}’
删除索引
curl -XDELETE ‘http://192.168.8.128:9200/test2?pretty’
添加数据
curl -XPUT -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/1?pretty’ -d ‘{“name”:“admin”}’
curl -XPUT -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/2?pretty’ -d ‘{“name”:“yzm”}’
添加数据时,如果索引不存在,那么es将会自动地创建这个索引
查询数据
curl -XGET ‘http://192.168.8.128:9200/test3/user/2?pretty’
修改数据
curl -XPUT -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/1?pretty’ -d ‘{“name”:“admin被修改了”}’
如果对已存在的ID再次进行PUT请求,则是修改 *** 作
增加age字段
curl -XPOST -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/1/_update?pretty’ -d ‘{“doc”:{“name”:“admin被修改了”,“age”:20}}’
通过script修改文档
curl -XPOST -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/1/_update?pretty’ -d ‘{“script”:“ctx._source.age += 5”}’
复杂查询
_search:搜索;
curl -XPOST -H “Content-Type:application/json” ‘http://192.168.8.128:9200/test3/user/_search?pretty’ -d ‘{“query”:{“match_all”:{}}}’
# match_all:匹配所有 { "query": { "match_all": {} } } # 返回搜索结果集的第一文档,size默认是10 { "query": { "match_all": {} }, "size": 1 } # from从第几个开始,默认是0,配合size可以实现分页效果 { "query": { "match_all": {} }, "from": 0, "size": 10 } # sort排序 { "query": { "match_all": {} }, "sort": { "age": { "order": "desc" } } } # _source:默认搜索结果是返回整个文档的所有字段,但可以通过_source指定返回部分字段 { "query": { "match_all": {} }, "_source": ["name", "age"] } # 只返回age=20的数据 { "query": { "match": { "age": 20 } } } # 布尔查询,所有条件都为真,即下面返回的数据包含name=admin和age=18 { "query": { "bool": { "must": [ { "match": { "name": "admin" } }, { "match": { "age": 18 } } ] } } } # 布尔查询,所有条件都为假,即下面返回的数据不能包含name=admin,也不能包含age=18 { "query": { "bool": { "must_not": [ { "match": { "name": "admin" } }, { "match": { "age": 18 } } ] } } } # 布尔查询,任意条件为真即可,即下面返回的数据包含name=admin,或者包含age=18 { "query": { "bool": { "should": [ { "match": { "name": "admin" } }, { "match": { "age": 18 } } ] } } } # 布尔组合,返回name=admin但age!=18的数据 { "query": { "bool": { "must": [ { "match": { "name": "admin" } } ] "must_not": [ { "match": { "age": 18 } } ] } } }
批量处理
curl -XPOST -H "Content-Type:application/json" 'http://192.168.8.128:9200/test3/user/_bulk?pretty' -d ' {"index":{"_id":"7"}} {"name":"zhangsan"} {"index":{"_id":"8"}} {"name":"lisi"} '
curl -XPOST -H "Content-Type:application/json" 'http://192.168.8.128:9200/test3/user/_bulk?pretty' -d ' {"update":{"_id":"7"}} {"doc":{"name":"zhangdada","age":21}} {"delete":{"_id":"8"}} '
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)