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