视频教程

elasticsearch搜索视频

主讲:君临天下
类型:elasticsearch
适合对象:有java基础

360云盘提取码:dec2
• 什么是Elasticsearch,和lucene以及solr的关系?

• 官网https://www.elastic.co/products

• 特点:
– 动态
– 分布式

• Elasticsearch和solr性能对比

• Lucene的核心理论——倒排索引
– 根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)
– 单词——文档矩阵

• Lucene索引中的概念

• document
用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。一条记录经过索引之后,就是以一个Document的形式存储在索引文件中的。用户进行搜索,也是以Document列表的形式返回。

• field
一个Document可以包含多个信息域,例如一篇文章可以包含“标题”、“正文”、“最后修改时间”等信息域,这些信息域就是通过Field在Document中存储的。

• segment
添加索引时并不是每个document都马上添加到同一个索引文件,它们首先被写入到不同的小文件,然后再合并成一个大索引文件,这里每个小文件都是一个segment。

• Elasticsearch数据流向
– 动态更新lucene索引,规则:新收到的数据写入到新的索引文件里面

• 步骤:
– 每次生成的倒排索引叫一个段(segment)然后另外使用一个commit文件记录索引内
所有的segment,生成segment的数据来源是内存buffer默认每隔一秒刷一次到文件系统缓存,文件系统缓存再到磁盘,可以调用/_refresh手动刷新

• 思考:既然每隔一秒只是写到文件系统缓存,那么最后一步写到实际磁盘是什么来控制的?如果中间出现主机错误、硬件故障等异常,数据会不会丢失呢?

• Translog提供磁盘同步控制
– 数据写入内存buffer同时记录了一个translog日志

• Translog提供磁盘同步控制
– 等到commit文件更新的时候,translog才清空,这一步叫做flush,默认每半小时刷新
一次,也可以手动调用
– 也可以通过配置index.translog.flush_threshold_ops参数,控制每多少条刷新一次

• Segment merge
– 独立线程做merge工作

• Elasticsearch 环境安装

• Elasticsearch javaAPI


分享:0
上一篇:hive视频
下一篇:mysql集群构建

微信服务号

微信服务号

400-009-1906

客服热线(服务时间:9:00-22:00)

Copyright 2007-2016 云数学院(北京)科技有限公司 京ICP备13018289号-1 京公网安备11010802015183
学校地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂
在线
客服

400-009-1906

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

QQ
咨询
关注
微信

微信扫一扫

有位老师想和您聊一聊