1. 查看集群的健康状况
http://localhost:9200/_cat
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
再查看一下所有索引
http://localhost:9200/_cat/indices?v
GET /_cat/indices?v
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" }
]
}
1. 创建索引
创建一个名为twitter的索引,设置索引的分片数为3,备份数为2。注意:在ES中创建一个索引类似于在数据库中建立一个数据库(ES6.0之后类似于创建一个表)
PUT twitte
{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
}
说明:
默认的分片数是5到1024
默认的备份数是1
索引的名称必须是小写的,不可重名
创建的命令还可以简写为
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. 创建索引时返回的结果说明
5. Get Index 查看索引的定义信息
GET /twitter,可以一次获取多个索引(以逗号间隔) 获取所有索引 _all 或 用通配符*
GET /twitter/_settings
GET /twitter/_mapping
6. 删除索引
DELETE /twitter
说明:
可以一次删除多个索引(以逗号间隔) 删除所有索引 _all 或 通配符 *
7. 判断索引是否存在
HEAD twitter
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.字段动态映射规则
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"
}