zoukankan      html  css  js  c++  java
  • ELK学习总结(2-6)elk的mapping

    1、什么是映射

         映射:创建索引的时候,预先定义字段的类型及相关属性

         作用:这样会让索引建立的更加细致和完善,如:是否存储、使用何种分析器、重要级别

         分类:静态映射和动态映射

    2、字段类型:string、integer、long、float、double、boolean、date、binary

    3、除了可以定义字段的类型意外,还可以定义字段的属性

         store:yes存储,no不存储,默认是no

         index:是否索引这个字段,anlyzed、not_anlyzed、或no,只有string类型可以设置索引

         null_value:如果字段是空,可以设置一个默认值

         boost:设置字段的权值,默认是1.0,如:书名(2.0),作者(1.0),检索时书名结果就靠前

         index_analyzer:设置索引时用的分析器

         search_analyzer:设置搜索时用的分析器

         analyzer:分析器用于分词,默认standard(支持大多数欧洲语言),还可以设置whitespace(基于空格分词)、simple(基于非字母,并转换成小写)、english(英文分析器),

         include_in_all:保证每个字段被搜索到,include_in_all=false,不然被搜索到

         index_name:定义字段的名称,默认是字段本身的名字

         norms:analyzed字段例,值有意义(true、not_analyzed=false)

         

    4、动态映射:

         文档中碰到以前没有见过的的字段时,动态映射决定该字段的类型,并自动添加映射

         通过dynamic属性控制(true:默认值,动态添加字段;false:忽略新字段;strict:碰到新字段,抛出异常)

         适用范围:跟对象或object类型的任意字段上。

    5、示例

    # 静态映射

    POST /library

    {

            "settings":{

                    "number_of_shards":5,

                    "number_of_relicas":1

             },

             "mappings" :{

                   “books”:{

                          “properties”:{

                                 “title”:{"type":"string"},

                                 “name”:{"type":"string","index":"not_analyzed"},

                                 “publish_date”:{"type":"date","index":"not_analyzed"},

                                 “price”:{"type":"double"},

                                 “number”:{"type":"integer"}

                          }

                   }

             }

    }

    # 动态映射

    PUT /library

    {

             "mappings" :{

                   “books”:{

                          "dynamic“:”strict“,

                          “properties”:{

                                 “title”:{"type":"string"},

                                 “name”:{"type":"string","index":"not_analyzed"},

                                 “publish_date”:{"type":"date","index":"not_analyzed"},

                                 “price”:{"type":"double"},

                                 “number”:{

                                        "type":"integer",

                                        "dynamic":"true"

                                 }

                          }

                   }

             }

    }

    6、获取映射信息

    GET /library/_mapping

    GET /library/_mapping/books

    GET /all/_mapping

    GET /all/_mapping/books,bank_account

    7、更新映射信息:

         重新建立索引,重新定义映射,导入原有映射数据

         具体步骤如下:

         a、现有索引,建立别名

              PUT /现有索引/_alias/别名A

         b、建立新索引,定义好映射,别名指向新索引

         c、删除老的索引,取消之前索引的指向

             POST  /_alias

             {

                    "actions":{

                           { "remove":{"index":"现有索引名",“alias”:“别名A”},

                           { "add":{"index":"新建索引名",“alias”:“别名A”}                         

                    }

             }

    8、删除映射

    DELETE  /library/books

    DELETE  /library/books/_mapping   

    DELETE  /library/_mapping/books,banks

        

  • 相关阅读:
    Git 合并流程
    Layui父页面向子页面传参
    jsp页面包含的几中方式
    Eclipse项目启动不了
    jquery 用于操作动态元素的delegate/on方法
    JS[获取两个日期中所有的月份]
    Map的四种遍历方法
    MySQL中, 如何查询某一天, 某一月, 某一年的数据.
    myEclies项目导入Eclipse中常见问题
    MyEclipse背景与字体大小和xml文件中字体大小调整
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6651133.html
Copyright © 2011-2022 走看看