mengxh1990 / javaweb_note

learn about java web
0 stars 0 forks source link

ES #2

Open mengxh1990 opened 6 years ago

mengxh1990 commented 6 years ago

ES学习资源

权威指南

mengxh1990 commented 6 years ago

Elasticsearch Notes

index -->database shard --> shcema

Elasticsearch 是一个实时分布式**搜索**分析引擎, 它被用作全文检索结构化搜索分析以及这三个功能的组合

相比其他数据库的优势:

高效地从你的数据中提取可用知识; 能够进行全文检索、处理同义词、通过相关性给文档评分 从同样的数据中生成分析与聚合数据 最重要的是,它能实时地做到上面的那些而不经过大型批处理的任务。

基于Apache Lucene全文搜索引擎库 分布式存储 + 分布式实时分析搜索引擎

概念:(从大到小)

索引Index,相当于一个数据库database shard,相当于一个schema 类型Type,相当于一个表 文档,相当于一条记录 属性,相当于一列或一个字段

index 在ES中,index有多重含义: 作名词,类似于Mysql中的database,是一个数据库; 作动词,索引(动词)的过程就是存储一个文档到索引(名词)中的过程,以便文档后续可以被检索和查询,类似于SQL语句中的INSERT。 关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。 默认的,一个文档中的每一个属性都是 被索引 的(有一个倒排索引)和可搜索的。一个没有倒排索引的属性是不能被搜索到的。

查询: 轻量查询:使用query string, 在url后加?q= 查询表达式:通过json构造请求体。

相关性得分 Elasticsearch中的 相关性 概念非常重要,也是完全区别于传统关系型数据库的一个概念,传统数据库中的一条记录要么匹配要么不匹配,而ES返回的结果可以根据相关性打分,默认按照打分从高到底排序。

分布式特性

作为用户,我们可以将请求发送到 集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。

分布式集群在概念上的不同: 分布式是真正的并行,子任务在不同的节点上同时运行,每个节点处理的任务和功能不同; 集群,每个节点是可以独立运行完整任务的,一个任务的不同阶段可以在一个节点上从头运行到结束。 分布式,是提高单位时间内运行的任务数量; 集群,是缩短单个任务运行的时间。