• 2018/2/5 ELK技术栈之ElasticSearch学习笔记


    npm config set registry https://registry.npm.taobao.org

    npm config get registry
    支持跨域访问
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    一个异常加上
    node.max_local_storage_nodes: 256

    ElasticSearch是一个基于Lucence的搜索服务器.
    它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.
    相比于solr可以使用xml,csv,json等进行交互,ElasticSearch只能用json进行交互;
    与lucence和solr创建索引时以一个域名和分词后的其值(组合起来教term)作为索引不同的是,ElasticSearch里静态词意的索引并不针对于term建立索引.而是一个类似数据库的逻辑命名空间;
    动态词意上则可以称作将某个文档放到索引里;
    再细化后就是Type,可以理解为表.
    再细化后就是Document,相当于一行数据(这个倒是跟lucence和solr差不多).
    最基础的单元就是field,相当于一列数据.
    Shards(分片(每一个分片都是一个luncence实例,是一个完整的搜索引擎,但我们不直接与它通信)),ElasticSearch能自动根据节点的增加动态调整复制分片.这也是为什么说ElasticSearch天生就是分布式的原因之一,
    ElasticSearch可以将一个索引分成若干个存到集群中的Node中(分片的数量是在建立索引时就需要确定的,但不用担心节点扩容和缩小的问题,ElasticSearch可以自动根据你的节点数量来迁移分片).

    replicas(复制)见其名知其义,就是将索引复制一份或者多份,作为副本(复制单元是分片,本身有算法能保证不会有相同分片在同一个节点上,并且复制分片在主分片没有出问题的情况下,只负责读,读针对于客户端发来的请求以及从其它的分片中读取更新的文档).
    在ElasticSearch中映射Mapping不需要定义映射类型,在我们存入第一行json时会自动根据我们存入的数据类型而确定其数据类型.
    MasterNode负责整理和管理元信息;
    DataNode负责存储和响应数据;
    任何一个节点都是一个ElaticSearch实例,任何一个节点都可以接受客户端的请求,并能从元信息中获取到具体数据所在的节点,之后将请求转发到存在文档的对应节点上,之后收集各个节点返回的数据,最后一起返回给客户端;
    与ElasticSearch服务端交互的三种方式:
    一:节点客户端
    ClientNode会作为一个非数据节点加入到集群中,它本身不保存任何数据,但ClientNode拥有元信息,这样当用户发来请求后ClientNode能根据元信息中的索引信息到对应的DataNode节点上进行数据请求;
    二:传输客户端
    不会加入集群,但可以把请求转发到集群中的一个节点上;
    三:使用RESTful API进行交互
    这个没什么说的,任何语言都可以使用json通过RESTful API与ElasticSearch服务进行交互.Linux则是通过curl命令(Linux下用来模拟http请求的技术)来进行交互;

    ElaticSearch数据格式:
    String:text/keyword(这两个的区别在于text会默认进行分词,而keyword则相反)
    Number:六种数据类型:byte,short,Integer,long,double,float
    data:这个可以自定义,比如,yyyy-MM-dd HH:mm:ss(默认类型为:strict_date_optional_time||epoch_millis)
    boolean:布尔值
    ip:(ipv4和ipv6都支持)
    geo_point:地图坐标
    nested:嵌套类型
    object:json对象
    binary:二进制

    ElasticSearch集群分为三个状态,使用/_cluster/health可查询
    green:所有主分片和副本分片都正常运行
    yellow:不是所有的副本分片都正常,但主分片都正常
    red:有主分片不正常并且没有副本分片能替代它(如果某一个主分片异常了,ElasticSearch能检测到,并升级对应的副本分片为主分片,在其恢复正常后,会重新将副本分片的数据重新导入给原主分片)

    ElasticSearch模板和mapping索引字段类型映射:
    mapping字段映射分为三种状态:1.dynamic:strict 2.dynamic:no 3.dunamic:true
    第一种状态为严格的按照创建索引时指定的字段类型进行映射,如果你添加了非此类型的也不会报错,但是其不会被索引
    第二种和第一种相同;
    第三种就是动态的,你也可以在创建索引时指定,在之后你新增的类型字段会自动根据其类型加上映射索引字段

    模板的意思就如同字面上一样,预定义一个模板,在之后可以指定这个模板,或者使用通配符自动为索引配置此模板里定义好的参数信息;
    mapping和模板都可以使用通配符进行自动匹配,一般情况下是配合使用;mapping还可以使用match自动为某个字段定义类型;
    并且模板可以设置order属性自定义优先级(order值越大优先级越高);

  • 相关阅读:
    ruby and watir学习之_正则表达式
    ruby and watir学习之_String 类
    ruby and watir学习之_Array 类
    ruby and watir学习之_Numeric类&&Float 类
    ruby and watir学习之_Hash 类
    solrj使用demo
    Apache Solr索引富文本(html word pdf)
    TPCC简单计算法
    Apache Solr solrconfig.xml 中文说明
    Apache Solr的索引和查询顺序
  • 原文地址:https://www.cnblogs.com/yangfeiORfeiyang/p/8417306.html
Copyright © 2020-2023  润新知