栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

架构学习-elasticsearch-深度应用

架构学习-elasticsearch-深度应用

1、索引文档写入和近实时搜索 2、索引文档段合并机制 3、并发冲突处理机制 采用es自带的版本号乐观锁机制
  1. 写入一个文档
  2. 两个客户端同时获取该条文档
  3. 客户端1修改文档内容
  4. 客户端2在第一次拿到的版本基础上修改文档,会报错
  5. 客户端2重新获取版本号,并在新的版本号上进行修改文档

基于external version进行乐观锁并发控制
  1. 创建一个文档
  2. 客户端1和客户端2同时读取版本号
  3. 客户端1进行修改文档操作
  4. 客户端2用第一次读取到的版本号进行修改文档操作,会报错
  5. 客户端2重新读取版本号,并将版本号加1再修改

4、分布式数据一致性保证 es5.0之前
  1. quorum机制
    写操作需要保证最少存活>=int((主分片数+副本分片数)/2) + 1
  2. timeout机制
    当存活分片数不满足条件时,等待的时间,默认1分钟
PUT /index/_doc/id?timeout=30s
es5.0之后
PUT /test_index/_doc/1?wait_for_active_shards=2&timeout=10s
{
"name":"xiao mi"
}
5、文档搜索机制

6、filter过滤机制
  1. 去倒排索引中过滤条件获取document list
  2. filter为每个过滤条件在倒排索引中获取到的结果构建一个bitset,[0, 0, 0, 1, 0, 1]
  3. 遍历每个过滤条件对应的bitset,优先从最稀疏的开始搜索
  4. 对于频繁使用的过滤条件,缓存其bitset,方便下次查询的时候快速定位
  5. 如果文档有修改,则更新过滤条件对应的bitset
  6. 在query之前,filter先过滤掉尽可能多的数据
7、基于boost细粒度搜索的权重控制
  1. 创建文档
  2. 默认boost权重查询
  3. 手动修改boost参数权重查询
8、基于dis_max实现best fields策略
  1. 为数据添加content字段
  2. 常规搜索
  3. 使用dis_max来搜索
9、基于function_score自定义相关度分数算法
  1. random_score

  2. field_value_factor

  3. decay functions-衰减函数,gauss(正常衰减);exp(指数衰减);linear(线性衰减)






10、深度翻页问题
  1. from+size,但是默认只能查询10000条数据,如果需要更多,需要重新配置,但是对集群资源消耗比较大,不推荐

  2. scroll遍历,适合后台程序,不适合实时搜索

  3. search after方式。es5以后才支持


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号