ElasticSearch系列 - 文档基本操作

ElasticSearch系列 - 文档基本操作

运行EKL(ElasticSearch+Kibanan+Logstash)

进入Kibanna页面

ElasticSearch系列 - 文档基本操作_第1张图片

选择控制台Console,可以在线输入命令,方便学习

进入cerebro集群控制台

ElasticSearch系列 - 文档基本操作_第2张图片

查看当前集群情况,一共4个索引,前三个是Kibanna测试数据,后面movies是通过Logstash导入的

绿色加粗代表是主分片,虚线代表是副本分片。

此时我运行

POST users/_doc
{
     
  "user" : "wanxintao",
  "post_date" : "2019-08-29T14:12:12",
  "message" : "trying out Kibana"
}

ElasticSearch系列 - 文档基本操作_第3张图片

集群立刻可以看出多了一个user索引。

在Kibanna上运行的好处是,Kibanna可以直接调整API文档查询

ElasticSearch系列 - 文档基本操作_第4张图片

文档的操作类型
类型 解释
index 如果id不存在,创建新文档,否则先删除后新增,version增加
create 如果id存在,创建文档会失败
read 通过id查询
update 更新文档,文档必须已经存在,更新只会对相应字段更新
delete 删除

下面是简单文档操作命令

GET /movies



# 创建文档指定  自动生成id  create类型
POST users/_doc
{
     
	"user" : "wanxintao",
  "post_date" : "2019-08-29T14:12:12",
  "message" : "trying out Kibana"
}

# 删除指定id的文档
DELETE users/_doc/4qNT3WwBPchluLm0xxnx

# 创建文档,指定Id。如果id已经存在,报错
PUT users/_doc/1?op_type=create
{
     
    "user" : "Jack",
    "message" : "trying out Elasticsearch"
}

# 创建文档 指定 ID 如果已经存在,就报错
PUT users/_create/1
{
     
     "user" : "Jack",
    "message" : "trying out Elasticsearch"
}
# 查看文档  read类型
GET users/_doc/1

# 更新文档  index类型
PUT users/_doc/1
{
     
	"user" : "Mike",
  "content":"更新是先删除后插入"
}

GET users/_doc/1

# 在原文档上新增文档  update类型
# 和 PUT users/_doc/1区别在于_doc与_update的区别
POST users/_update/1/
{
     
    "doc":{
     
        "post_date" : "2019-05-15T14:12:12",
        "message" : "trying out Elasticsearch"
    }
}

### Bulk 操作
### 减少重复建立链接消耗,支持对一个索引不同操作,不同索引不同操作,可以create,index delete update四种操作 一条操作失败不阻塞后面操作,每一条操作都会返回值
  
POST _bulk
{
      "index" : {
      "_index" : "test", "_id" : "1" } }
{
      "field1" : "value1" }
{
      "delete" : {
      "_index" : "test", "_id" : "2" } }
{
      "create" : {
      "_index" : "test2", "_id" : "3" } }
{
      "field1" : "value3" }
{
      "update" : {
     "_id" : "1", "_index" : "test"} }
{
      "doc" : {
     "field2" : "value2"} }


### mget 操作  批处理,减少重复建立链接消耗

PUT test/_doc/2
{
     
	"user" : "Mike",
  "content":"更新是先删除后插入"
}

GET /_mget
{
     
    "docs" : [
        {
     
            "_index" : "test",
            "_id" : "1"
        },
        {
     
            "_index" : "test",
            "_id" : "2"
        }
    ]
}

#URI中指定index
GET /test/_mget
{
     
    "docs" : [
        {
     

            "_id" : "1"
        },
        {
     

            "_id" : "2"
        }
    ]
}

GET /_mget
{
     
    "docs" : [
        {
     
            "_index" : "test",
            "_id" : "1",
            "_source" : false
        },
        {
     
            "_index" : "test",
            "_id" : "2",
            "_source" : ["field3", "field4"]
        },
        {
     
            "_index" : "test",
            "_id" : "3",
            "_source" : {
     
                "include": ["user"],
                "exclude": ["user.location"]
            }
        }
    ]
}


### msearch 操作 批量查询
POST kibana_sample_data_ecommerce/_msearch
{
     }
{
     "query" : {
     "match_all" : {
     }},"size":1}
{
     "index" : "kibana_sample_data_flights"}
{
     "query" : {
     "match_all" : {
     }},"size":2}

#清除数据 index
DELETE users
DELETE test
DELETE test2

Status分析

问题 原因
无法连接 网络故障/集群挂了
连接无法关闭 网络故障或者节点出错
429 集群太繁忙
4xx 请求体格式有错
500 集群内部错误

你可能感兴趣的:(ElasticSearch系列,全文检索,ElastSearch)