欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch实战系列(四)--索引数据简述

程序员文章站 2023-12-24 17:16:57
...

一、索引数据的方式

  1. 直接使用cURL和REST API,发送json文档给ES进行索引,将会返回JSON应答
    1. 案例
    2. curl -H "Content-Type: application/json" -XPUT '192.168.160.128:9200/testindex/testtype/1?pretty' -d '{"name":"zhangsan","age":"25"}'

      其中:

      1. 若不添加-H,则会报错

      2. {

          "error" : "Content-Type header [application/x-www-form-urlencoded] is not supported",

          "status" : 406

        }

      3. 并且索引名称和类型名称不能大写,否则会报错

      4. {

          "error" : {

            "root_cause" : [

              {

                "type" : "invalid_index_name_exception",

                "reason" : "Invalid index name [testIndex], must be lowercase",

                "index_uuid" : "_na_",

                "index" : "testIndex"

              }

            ],

            "type" : "invalid_index_name_exception",

            "reason" : "Invalid index name [testIndex], must be lowercase",

            "index_uuid" : "_na_",

            "index" : "testIndex"

          },

          "status" : 400 

    3. 案例返回内容解析
    4. {
        "_index" : "testindex",
        "_type" : "testtype",
        "_id" : "1",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 0,
        "_primary_term" : 1
      }

      其中包含:

      1. 索引名称、类型名称、文档id以及其它相应信息比如分片信息等

    5. 注:
      1. 当索引不存在时,ES会自动创建说是因
      2. 当映射未定义时,ES自动为相应索引创建映射,映射包含字符串字段的定义
      3. 即默认情况下,我们无须任何配置,即可开始索引。但很多情况下需要我们手动创建索引和映射
  2. ElasticSearch Head
    1. 一个单机的HTTP服务器,或是可以从文件系统打开的网页
    2. 可以发送HTTP请求,也可以作为监控,监控集群的分片信息
  3. ElasticSearch koaf
    1. 类似于Head,可以发送HTTP请求以及监控
    2. 以文件系统的网页运行,或是以ElasticSearch的插件运行
  4. Marvel
    1. 商业产品,ElasticSearch的监控解决方案

二、创建索引

  1. 案例
  2. curl -XPUT '192.168.160.128:9200/index1'

     

  3. 返回结果
  4. {"acknowledged":true,"shards_acknowledged":true,"index":"index1"}

     

  5. 为什么需要手动创建索引?
    1. 当我们需要覆盖ES默认设置的时候,就需要手动创建索引,比如分片的数量

三、创建映射

  1. 创建映射之前,我们通常需要先查看映射
    1. 案例
    2. curl '192.168.160.128:9200/testindex/_mapping?pretty'

      其中:

      1. testindex为索引名称

    3. 返回结果
    4. {
        "testindex" : {
          "mappings" : {
            "testtype" : {
              "properties" : {
                "age" : {
                  "type" : "text",
                  "fields" : {
                    "keyword" : {
                      "type" : "keyword",
                      "ignore_above" : 256
                    }
                  }
                },
                "name" : {
                  "type" : "text",
                  "fields" : {
                    "keyword" : {
                      "type" : "keyword",
                      "ignore_above" : 256
                    }
                  }
                }
              }
            }
          }
        }
      }

      其中:

      1. 类型名称、属性列表、属性选项

    5.  
  2. 新增索引
    1. 案例,在我们刚刚创建的索引index1上新增映射
    2. curl -H "Content-Type: application/json" -XPOST '192.168.160.128:9200/index1/type/_mapping?pretty' -d '{"type":{"properties":{"name":{"type":"keyword"}}}}'

       

    3. 返回结果
    4. {
        "acknowledged" : true
      }

       

 

 

 

上一篇:

下一篇: