• es-index操作


    新建index

    既可以通过post /index名  的形式先定义index,json串的内容可以是index定义包括,mapping,setting和alias等等 

    也可以post  /index名/类型名  的形式在传入文档的时候自动定义index。json串就是文档的内容,如果index名能够匹配索引模板那么就会复用索引模板的定义,如果没有就会采用es默认的类型定义,es一般会定义成string类型。

    查看index定义

    get  index名

    删除index

    delete index名

    查看index内容

    post/get index名/type名/_search   json字符串可以是查询字符串

    index别名设置

    post    index名/_alias/别名

    index别名与index删除和建立关联

    post   /_aliases  json字符串为下面的定义形式

    {
    "actions": [
    {
    "remove": {
    "index": "test0713",
    "alias": "alias0712"
    },
    "add": {
    "index": "test0712",
    "alias": "alias0712"
    }
    }
    ]
    }

    修改index设置

    put   /index名/_setting    json字符串为设置的定义,例如索引的主分片的数目,最大查询窗口等等,如果index名字为_all则表示当前所有的索引

    映射操作

     mapping感觉是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,其它就是处理es里面数据的一些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射,并且需要思考如何建立映射才能对性能更好?和建立表结构表关系数据库三范式类似。

            在刚刚接触es的时候很多资料教程都不会直接上来先建立mapping映射,都是从一些示例入手很容易理解,那时没有建立映射es也是可以工作的,说明es很多地方都是有默认设置的,如果我们不设置字段类型那么将走默认类型。

    •         映射的新建、修改、删除

           让我们先来建一个library01的索引,然后再该索引上面添加映射,其它也可以在建立索引时同时初始化映射关系,先建后建都是一样的。

    如上面library01是我新建的索引,从右侧可以看出来它的mapping映射是空值,我们并没有建映射,在library01中新建映射 如

            已经为索引建立了映射,可以用上图中get命令查看各种索引,可以从一个索引中查看某个或某几个类型的映射,也可以查看集群中所有或指定类型索引,用起来还是很方便的。

            新建完还可以删除映射,通过这些命令:

            最后就是更新操作了,其它更新操作还是比较麻烦的,es中想要给一个已经建好映射的索引改变映射结果,即使改变一个字段类型都是不支持的,需要重新建立索引以及映射结构,然后把以前的数据导入到新建的索引结构中去,完成改变映射结构的目的。

            步骤:

    1.给已有的索引定一个别名,并指向该别名

    2.新建一个新的索引,新的映射结构

    3.将别名指向新的索引,取消旧的索引与别名之间的关联

            通过这几部即可达到重新改变映射结构的内容,例如我们想改变library01的映射中price字段的类型由现有的double变为integer类型。

            从上面图中可以看出来price 类型已经是integer类型了,客户端不需要知道变化也不需要停止es服务,在必要的时候可以使用这个方法。

    索引模板

    模板并不属于某个具体的索引,它会对满足索引模板正则表达式的索引名直接使用该模板定义,而不必对每个索引进行定义。

    模板的过程包括“settings”,"template","mapping","aliases","order"这几项的设置,其中order的作用在于规定模板的使用顺序,如果一个index同时匹配多个模板,则以其中order值较大的为准。但是实际并不是这样的,改变order大小会造成index模板的加载失败和冲突,要特别小心。

    模板由模板名和模板正则匹配表达式两项,模板名只代表该模板定义的名字,模板正则表达式则用于匹配其适用的索引名称。

  • 相关阅读:
    (转)使用介质设备安装 AIX 以通过 HMC 安装分区
    (转)在 VMware 中安装 HMC
    (转)50-100台中小规模网站集群搭建实战项目(超实用企业集群)
    (转)awk数组详解及企业实战案例
    (转) IP子网划分
    教你如何迅速秒杀掉:99%的海量数据处理面试题(转)
    PHP对大文件的处理思路
    十道海量数据处理面试题与十个方法大总结
    mysql查询更新时的锁表机制分析
    mysql数据库问答
  • 原文地址:https://www.cnblogs.com/suntp/p/9474955.html
Copyright © 2020-2023  润新知