首页 > 代码库 > ElasticSearch 学习笔记一 简介
ElasticSearch 学习笔记一 简介
一、Lucene简介
A、Lucene的总体架构
1、文档(document):索引与搜索的主要数据载体,它包含一个或多个字段,存放将要写入索引或将从索引搜索出来的数据。
2、字段(field): 文档的一个片段,它包含两个部分: 字段的名称和内容。
3、词项(term):搜索的一个单位,代表文本中的某个词。
4、词条(token): 词项在字段中的一次出现,包括词项的文本、开始和结束的位置以及类型。
Apache Lucene将写入索引的所有信息组织成一种名为倒排索引(inverted index)的结构。
B、Lucene查询语言
1、AND: 操作符两边的词项都在文档中出现。
2、OR:任意词项在文档中出现。
3、NOT:文档必须不包含该操作符后面的词项。
4、+: 只有包含操作符后面词项的文档才会被认为是与从句匹配。
5、-: 从句匹配的文档不能出现操作符后面的词项。
Lucene中所有的数据都存储在字段(field)中,而字段又是文档的组成单位。为了实现针对某个字段的查询,用户需要提供字段名称,再加上冒号及条件。支持两种通配符: ?和*。?是匹配任意一个字符,*是匹配多个字符。~表示模糊查询。
二、ElasticSearch简介
A、基本概念
索引:ElasticSearch将它的数据存储在一个或多个索引(index)中。索引就像数据库,可以向索引写入文档或从索引中读取文档。
文档:Es的主要实体,由字段构成。
映射: 所有的文档在写入索引前都需要先进行分析。用户可以设置一些参数,来决定如何将输入的文本分割为词条,哪些词条应该被过滤掉。
类型: Es中每个文档都有与之对应的类型(type)定义。这允许用户在一个索引中存储多种文档类型,并为不同文档类型提供不同的映射。
节点: 单个的Es服务实例称为节点(node)。
集群: 多个节点同时处理。
分片: Es将数据散布到多个物理Lucene索引上,这些Lucene索引称为分片。
副本: 解决压力过大时,某个分片所在的节点宕机, 这是Es会使用其副本。
网关: 在Es的工作过程中,关于集群的状态,索引设置的各种信息都会被收集起来,并在网关(gateway)中被持久化。
B、工作流程
当es节点启动时,它使用广播技术来发现同个集群中的其它节点并与它们连接。集群中会有一个节点被选为管理节点(master node),该节点负责集群的状态管理以及在集群拓扑变化时做出反应,分发索引分片到相应的节点。管理节点读取集群的状态信息,并在必要时进行恢复处理。
C、索引数据
es提供4种方式来创建索引
1、使用索引api
2、bulk api
3、UDP bulk api
4、使用插件发送数据
D、查询数据
使用查询DSL。查询并不是一个简单的、单步骤的操作。一般查询分为两个阶段:分散阶段(scatter phase)和合并阶段(gather phase)。
E、索引配置
可以手动配置一些功能。
ElasticSearch 学习笔记一 简介