Elasticsearch之基础使用

Elasticsearch之基础使用,第1张

Elasticsearch之基础使用

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存