ElasticSearch ES权威指南和深入理解ES笔记

ES

es学习和实践思维导图
在这里插入图片描述

使用场景

搜索引擎

elk

站内搜索

特点

1. 默认配置

2. 分布式,可扩展,对等架构p2p

3. 无模式

4. 准实时

3. 故障检测

    1. master node

4. 故障恢复

    1. rebalance
    1. 选主

集群架构

高可用

  • 故障恢复转移

  • 选主

    • 节点数

      • 节点数=分片数*(副本数+1)
      • 过半
    • 节点类型

      • data

      • 候选

      • master

      • 协调节点

        • 非以上几种就可以
    • 子主题 3

      • https://zhuanlan.zhihu.com/p/35291900
  • 分片

  • 路由

    • routing参数
  • 复制

集群管理

  • 文件系统

  • 别名

  • 扩容

    • 多索引
    • 索引别名
    • 朱分片扩容
  • 故障处理

    • jvm
    • swap
    • io限速
    • 预热器
    • 热点线程

一致性

  • translog

    • flush
  • 段合并refresh

    • 合并调度器

        1. 并发
        1. 顺序
    • 增加io量

      1. 段合并减少段的数量,删除被标记删除的段
  • commit

高性能

  • 缓存

  • 子主题 2

    • term 查询比一个短语查询大约快 10 倍,比邻近查询(有 slop 的短语 查询)大约快 20 倍

扩展性

  • rebalance
  • 节点发现

数据建模

嵌套对象

  • 是在一个文档内
  • 嵌套多时性能差

父子文档

  • 是独立的文档
  • 构成一对多的关系:一个父文档可以对应多个子文档
  • 层级多时性能差

基本操作

1. crud

  • 查询

    • term查询

    • 超时

    • phrase查询

    • range

    • bool

    • fuzzy

    • wilcard

    • geo

    • 区间查询

    • 过程

      • query and fetch两阶段查询
  • updte

    • 更新并发冲突

      • retry_on_conflict
      • 内外部版本号
    • 内外部id

    • 一致性

      • 写多少个分片成功才返回

      • 同步异步

      • 在内存buffer中的能看到版本号?

      • 方案

        • 读主分片
        • 强制refresh
      • 官网

        • Elasticsearch 使用这个 _version 号来确保变更以正确顺序得到执行。如果旧版本的文档在新版本之后到达,它可以被简单的忽略。
    • 局部更新

      • 文档不可变性
  • 性能

    • shingles
    • 短语查询很慢

组合查询

2. 分页

3. 排序

4. 过滤

5. 切面

  • 聚合

6. 高亮

7. 建议

8. 计数

9. 滚动

10. 批量

11. precolator

  • 1. 逆查询
    
  • 2. 某个文档相关的所有已进行过的查询
    

12. expalin

13. analyze

相关性优化

lucene

    1. 文档
      1. doc
    1. 字段
      1. filed,字段名称和内容
    1. 词项
      1. term
    1. 词条
      1. token ,词项在字段中的一次出现包括词项和位移和类型
    1. 段:多个段组成一个索引
    1. 分析器,用于分析文档,创建索引
      1. 分词器
    •   1. 将文本,切成token包含term和位移信息,输出词条流
      
      1. 过滤器
    •      1. 同义词
      
    •      2. 词干还原
      
    •      3. 大小写
      
    •   1. 处理词条流的词条,修改或者删除
      
      1. 字符映射器
    •   1. 用于文本预处理
      
    • ik

      • 扩展词库
      • 停用词
  • 词向量

      1. 保存字段的所有词条

dsl进阶

  • 评分公式

    • 算法

      • tfidf

        • 7个因素
      • bm25

      • 。。。

    • 特点

        1. 罕见词项匹配到得分高
        1. 字段越短得分高
        1. 权重高德妃高
  • 查询改写

    • ElasticSearch(实际上是Lucene执行该操作)使用查询改写是出于对性能的考虑。从Lucene的角度来看,所谓的查询改写操作,就是把费时的原始查询类型实例改写成一个性能更高的查询类型实例。
  • 二次评分

    • 在返回结果子集上做排序,性能佳
      1. rescore:{}
  • filter

  • 精度控制

    • bool

      • minimum_should_match 参数控制需要匹配的 should 语句的数量
      • must
      • should
      • 查询term权重

搜索体验

  • 拼写纠错

    • /_suggest

        1. term suggester
          1. 编辑距离jw算法
        1. phrase suggester
          1. ngram算法
          1. ngram算法,将词切分成多个gram的片段
        1. auto complete
          1. 前缀匹配
          1. 基于fst
  • 相关性

      1. 使用_all 匹配_ _source所有json内容
      1. multi match 字段加权重
      • 字段权重field^100
      1. 引入短语查询和bool查询,叠加bool
      1. 引入slop 短语距离,短语中单词的差异数
      1. filter过滤垃圾信息
      1. 调整查询字段的短语查询的权重
      • 子查询权重
      • boost factor

插件开发

XMind - Trial Version

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值