全文检索;
Lucene词汇表和架构
输入数据分析
评分和查询相关性
Elasticsearch 基础
数据架构的主要概念
主要可以总结下对比传统数据库的结构
索引:对应库
文档类型:Tab表
文档:tab下行记录
映射:表下列字段类型定义
字段:表下的列
Elasticsearch主要概念
节点和集群(服务器)
分片
当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端
请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片(shard)的部分。
每个分片可以放在不同的服务器上,因此,数据可以在集群的节点中传播。
当你查询的索引分布在多个分片上时, Elasticsearch会把查询发送给每个相关的分片,
并将结果合并在一起,而应用程序并不知道分片的存在。此外,多个分片可以加快索引。
副本
为了提高查询吞吐量或实现高可用性,可以使用分片副本。
副本(replica)只是一个分片的精确复制,每个分片可以有零个或多个副本。
换句话说, Elasticsearch可以有许多相同的分片,
其中之一被自动选择去更改索引操作。这种特殊的分片称为主分片(primary shard),
其余称为副本分片(replica shard)。在主分片丢失时,
例如该分片数据所在服务器不可用,集群将副本提升为新的主分片
时光之门(简单理解)
Elasticsearch处理许多节点。集群的状态由时光之门控制。
默认情况下,每个节点都在本地存储这些信息,并且在节点中同步
索引建立和搜索
你可能会问实际上如何把所有的索引、分片和副本绑在单个环境里。
理论上,当你必须知道你的文档在哪,哪台服务器、哪个分片上时,
从集群获取数据非常困难。更为困难的是当一个搜
索需要返回的文档分布在集群中不同节点的不同分片上时。
Elasticsearch使用文档的唯一标识符来计算文档应该被放到哪个分片中。
索引请求发送到一个节点后,该节点会转发文档到持有相关分片的目标节点中。
在前面描述的过程中,副本扮演了什么角色呢?在建立索引时,副本只作为
额外的位置来存储数据。当执行查询时,
默认情况下, Elasticsearch会尽量平衡分片和它的副本
之间的负载,使它们承受均衡的压力。
安装并配置集群(ElasticSearch)
该部分内容操作方式已经old了,elasticsearch-rtf已经集成了很多插件
用 REST API 操作数据(CRUD调用接口进行);
理解Elasticsearch的RESTful API
在一个类REST的架构中,每个请求都指向地址路径所表示的一个具体对象
合乎逻辑的选择是, GET用来获得请求对象的当前状态,
POST来改变对象的当前状态, PUT创建一个对象,
而DELETE销毁对象,另外还有个HEAD请求仅仅用来获取对象的基础信息。
在Elasticsearch中存储数据(CRUD)
存储数据之前,先定位库及表及映射关系(字段及类型的映射)
然后调用api落数据(文档标识符生成uuid 标识符可以自动生成和手动生成)
使用基本的URI请求来搜索(调用接口进行)(HTTP请求 第一章感觉没说啥)。