ElasticSearch(十)-索引管理

1.创建删除
创建:
put /myidnex
{
  “setting”:{},
  “mapping”:{}
}
防止自动创建:可以在elasticsearch.yml中添加action.anto.create_index:false

删除:
delete /myindex1,myindex2
delete /_all

2.索引设置
  number_of_shards主分片数,默认5,索引创建后不能更改
  number_of_replicas复制分片数,默认1,随时可以更改
 
3.配置分析器
   默认的standard不予讨论。
 
4.自定义分析器
  再次回顾一下分析器:
     1)字符过滤器:过滤一些标签或其他字符
     2)分词器:譬如ik
     3)表征过滤:譬如大写转小写,停用词
  
建议自定义分析器

"analyzer":{
    "my_analyzer": {
        "type":           "custom",
        "char_filter":  [ "html_strip","&_to_and" ],
        "tokenizer":      "standard",
        "filter":       [ "lowercase","my_stopwords" ]
    }
}

5.映射

Lucene没有映射的概念,映射是es将复杂的json文档映射成lucene需要的扁平化数据的方式。

为了保证你不会遇到这些冲突,建议在同一个索引的每一个类型中,确保用同样的方式映射同名的字段

 

6.根对象

 元数据字段以下划线开头,_type,_id,_source

 

7.source

 默认情况下数据json格式保存在其中,在写入硬盘之前会压缩。

 当映射需要改变,需要重建索引,可以直接在es中操作。

  如想禁用:
  "mappings": {
        "my_type": {
            "_source": {
                "enabled":  false
            }
        }
    }

 

8._all字段

    Query_string默认采用它来查询

    禁用语句

PUT /my_index/_mapping/my_type
{
    "my_type": {
        "_all": {"enabled": false }
    }
}

通过include_in_all可以控制字段是否被包含在_all中,默认true

一般做法:先完全禁用include_in_all,然后再选定字符串上启用它。

_all字段相当于一个新字段,采用默认的分析器,与组成它的字段所设置的分析器无关,可能原因:每个字段设置的可能不一样。你可以自己配置_all字段的分析器.

 

9.文档id

_uid_type  _id 连接成的 type#id

_uid默认被保存和索引的,_type默认被索引但不保存,_id_idnex既没有索引也没有存储,他们并不是真实存在的。

_id可以被指定:

PUT /my_index
{
    "mappings": {
        "my_type": {
            "_id": {
                "path":"doc_id" <1>
                 }
        }
    }
}
这种方式在bulk请求有轻微的性能影响。
 

10.动态映射

     Dynamictrue自动添加字段,默认

                         false忽略字段

                         strict当遇到位置字段抛出异常

 

11.自定义动态映射

 应用之一:日期检测

 小知识:日期检测可以通过在根对象上置 date_detection  false 来关闭;

  模板实例,可单独研究,应用多

 PUT/my_index
{
    "mappings": {
        "my_type": {
            "dynamic_templates": [
                { "es": {
                      "match":              "*_es", <1>
                     "match_mapping_type": "string",
                      "mapping": {
                         "type":          "string",
                         "analyzer":      "spanish"
                      }
                }},
                { "en": {
                      "match":              "*", <2>
                     "match_mapping_type": "string",
                      "mapping": {
                         "type":          "string",
                         "analyzer":      "english"
                      }
                }}
            ]
}}}


12.默认映射

  _default_映射是定义索引级别动态模板的好地方。

 

13.重建索引数据

   Mapping可以给索引添加新的类型或类型添加新的字段,但不能添加新的分析器或修改已有字段。

 为了更高效的索引旧索引中的文档,用scan-scoll来批量取旧索引的文档,然后将通过bulk API来将它们推送给新的索引。

 GET/old_index/_search?search_type=scan&scroll=1m
{
   "query": {
       "range": {
           "date": {
               "gte": "2014-01-01",
               "lt":  "2014-02-01"
           }
        }
    },
   "size":  1000
}
上面的语句会生成一个 _scroll_id,根据这个id取得数据,导入新索引中,重建索引就这简单。(_scroll_id 可以在body或者URL里传递,也可以被当做查询参数传递)。

 
14.别名
  切换、分类(应广泛使用索引别名),原子化操作索引迁移
POST /_aliases
{
    "actions": [
        { "remove": { "index": "my_index_v1", "alias": "my_index" }},
        { "add":    { "index": "my_index_v2", "alias": "my_index" }}
    ]
}


本文出处:http://blog.csdn.net/shan1369678/article/details/51455315
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值