es

作者: go_2021 | 来源:发表于2022-02-17 23:37 被阅读0次

    结构
     索引+ mapping(库结构)
      文档1,文档2。。(表)

    类型
     字符,数字,布尔,日期,对象,数组,ip,经纬度。。
    keyword直接建索引。
    text先分词,在建立索引。
    分片
     提高吞吐量,一个索引数据分散在对应分片上。
    索引在创建是已经确定分片,不能动态调整。

    副本
     实现高可用,可以动态调整。
    写入过程
     协调节点-写入对应分片-同步到副本-返回
    具体一点写入

    • 1. 写入
      写入es缓存。写入transLog。
    • 2. refresh
      默认一秒一次,es缓存到系统缓存。
      准实事,到系统缓存才能查到。
    • 3. flush
      log太大 or 30分钟,os缓存刷新到硬盘,落盘之后,清空log和os缓存。
    • 4. merge
      定时对落盘的数据合并。

    持久化延时
     写入log后,重启就可以同步的硬盘。但是写log不是实时的,5秒一次。
    参数可设置,es7是实时的。

    删除和更新
     逻辑大致和写入一样,不过是del日志文件,标记要删的数据,更新是先删后添加。

    大数据保证性能
     预读,如果能分辨出冷热,冷热分离,不同分片。
    加内存,保证es只存需要查的数据。

    分页
    school做快照,缺点占内存,不会更新。有个max_result_window限制。
    es3,可以用search-after,类似mysql where id> 1000;

    一些命令

    WechatIMG163.png

    分词器
    可以每个mapping字段指定。
    大致分为3步,过滤-分割-转换(大小写)

    相关文章

      网友评论

          本文标题:es

          本文链接:https://www.haomeiwen.com/subject/rxghlrtx.html