ElasticSearch入门、索引管理、映射

一、快速入门

1. 查看集群的健康状况
 

http://localhost:9200/_cat

ElasticSearch入门、索引管理、映射_第1张图片

http://localhost:9200/_cat/health?v

 

说明:v是用来要求在结果中返回表头

状态值说明

Green - everything is good (cluster is fully functional),即最佳状态
Yellow - all data is available but some replicas are not yet allocated (cluster is fully functional),即数据和集群可用,但是集群的备份有的是坏的
Red - some data is not available for whatever reason (cluster is partially functional),即数据和集群都不可用

查看集群的节点
 

http://localhost:9200/_cat/?v

2. 查看所有索引
 

http://localhost:9200/_cat/indices?v

 

3. 创建一个索引
创建一个名为 customer 的索引。pretty要求返回一个漂亮的json 结果

PUT /customer?pretty

 ElasticSearch入门、索引管理、映射_第2张图片

 再查看一下所有索引

http://localhost:9200/_cat/indices?v

GET /_cat/indices?v

ElasticSearch入门、索引管理、映射_第3张图片

 4. 索引一个文档到customer索引中

curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}

5. 从customer索引中获取指定id的文档

curl -X GET "localhost:9200/customer/_doc/1?pretty"

6. 查询所有文档

GET /customer/_search?q=*&sort=name:asc&pretty

 JSON格式方式

GET /customer/_search
{
  "query": { "match_all": {} },
  "sort": [
    {"name": "asc" }
  ]
}

二、索引管理

ElasticSearch入门、索引管理、映射_第4张图片

 ElasticSearch入门、索引管理、映射_第5张图片

  1. 创建索引
创建一个名为twitter的索引,设置索引的分片数为3,备份数为2。注意:在ES中创建一个索引类似于在数据库中建立一个数据库(ES6.0之后类似于创建一个表)

PUT twitte
{
    "settings" : {
        "index" : {
            "number_of_shards" : 3,
            "number_of_replicas" : 2
        }
    }
}
说明:
默认的分片数是5到1024
默认的备份数是1
索引的名称必须是小写的,不可重名

ElasticSearch入门、索引管理、映射_第6张图片

 创建的命令还可以简写为

PUT twitte
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 2
    }
}

 2. 创建mapping映射
注意:在ES中创建一个mapping映射类似于在数据库中定义表结构,即表里面有哪些字段、字段是什么类型、字段的默认值等;也类似于solr里面的模式schema的定义

PUT twitte
{
    "settings" : {
        "index" : {
            "number_of_shards" : 3,
            "number_of_replicas" : 2
        }
    },
   "mappings" : {
        "type1" : {
            "properties" : {
                "field1" : { "type" : "text" }
            }
        }
    }
}

 3. 创建索引时加入别名定义

PUT twitte
{
    "aliases" : {
        "alias_1" : {},
        "alias_2" : {
            "filter" : {
                "term" : {"user" : "kimchy" }
            },
            "routing" : "kimchy"
        }
    }
}

4. 创建索引时返回的结果说明

ElasticSearch入门、索引管理、映射_第7张图片

 

5. Get Index 查看索引的定义信息
 GET /twitter,可以一次获取多个索引(以逗号间隔) 获取所有索引 _all 或 用通配符*

ElasticSearch入门、索引管理、映射_第8张图片

 

GET /twitter/_settings

ElasticSearch入门、索引管理、映射_第9张图片

 GET /twitter/_mapping

ElasticSearch入门、索引管理、映射_第10张图片

 

 6. 删除索引

DELETE /twitter

说明:

可以一次删除多个索引(以逗号间隔) 删除所有索引 _all 或 通配符 *
 

7. 判断索引是否存在

HEAD twitter

ElasticSearch入门、索引管理、映射_第11张图片

  HTTP status code 表示结果 404 不存在 , 200 存在

8. 修改索引的settings信息

索引的设置信息分为静态信息和动态信息两部分。静态信息不可更改,如索引的分片数。动态信息可以修改。

REST 访问端点:
/_settings 更新所有索引的。
{index}/_settings 更新一个或多个索引的settings。

9.动态映射
动态映射:ES中提供的重要特性,让我们可以快速使用ES,而不需要先创建索引、定义映射。如我们直接向ES提交文档进行索引:

PUT data/_doc/1
{ "count": 5 }

ES将自动为我们创建data索引、_doc 映射、类型为 long 的字段 count

索引文档时,当有新字段时, ES将根据我们字段的json的数据类型为我们自动加人字段定义到mapping中。

10.字段动态映射规则

ElasticSearch入门、索引管理、映射_第12张图片

11.Date detection 时间侦测

所谓时间侦测是指我们往ES里面插入数据的时候会去自动检测我们的数据是不是日期格式的,是的话就会给我们自动转为设置的格式

[ "strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
PUT my_index/_doc/1
{
  "create_date": "2015/09/02"
}
 
GET my_index/_mapping

自定义时间格式:

PUT my_index
{
  "mappings": {
    "_doc": {
      "dynamic_date_formats": ["MM/dd/yyyy"]
    }
  }
}

 禁用时间侦测:

PUT my_index
{
  "mappings": {
    "_doc": {
      "date_detection": false
    }
  }
}

12 Numeric detection  数值侦测

 开启数值侦测(默认是禁用的)

PUT my_index
{
  "mappings": {
    "_doc": {
      "numeric_detection": true
    }
  }
}
PUT my_index/_doc/1
{
  "my_float":   "1.0",
  "my_integer": "1"
}

你可能感兴趣的:(JAVA基础,java)