Core Concept

基础概念

Lucene 词汇表

  • 文档 document :索引和搜索时使用的主要数据载体,包含一个或多个存有数据的字段
  • 字段 field :文档的一部分,包含名称和值两部分
  • term: 一个搜索单元,表示文本中的一个词
  • 标记 token :在字段文本中出现的词,由这个词的文本、开始和结束偏移量以及类 型组成
  • 倒排索引 inverted index
  • 索引分为多个的段segment。一个段写入磁盘后就不能再更新,被删除文档的信息存储在一个单独的文件中,多个段可以通过段合并segments merge合并在一起,合并时不再需要的信息将被删除
  • 分析器 由一个分词器 tokenizer和零个或多个标记过滤器 token filter组成,也可以有零个或多个字符映射器character mapper
  • 评分scoring

ElasticSearch 核心概念

数据架构

  • **索引(index)**是Elasticsearch对逻辑数据的逻辑存储,可以把索引看成关系型数据库的表

  • 存储在Elasticsearch中的主要实体叫文档(document),用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录

  • 文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。与关系型数据库不同,文档不需要有固定的结构,每个文档可以有不同的字段

  • 在Elasticsearch中,一个索引对象可以存储很多不同用途的对象,文档类型让我们轻易地区分单个索引中的不同对象。但是有一个限制,不同的文档类型不能为相同的属性设置不同的类型

  • 文档中的每个字段都必须根据不同类型做相应的分析, Elasticsearch在映射中存储有关字段的信息,可理解为字段类型

数据存储在一个或多个索引

索引包含各种类型的文档

文档有很多字段

映射定义了如何对待这些字段

集群概念

  • Elasticsearch 可以运行在许多互相合作的服务器上,这些服务器称为集群(cluster),形成集群的每个服务器称为节点(node)
  • 索引切分成较小的**分片(shard)**放在不同的服务器上,其中每个分片都是一个独立的Apache Lucene索引,多个分片可以加快索引和查询速度。当查询的索引分布在多个分片上时, ES 会把查询发送给每个相关的分片,并将结果合并在一起,而应用程序并不知道分片的存在。
  • **副本(replica)**只是一个分片的精确复制,每个分片可以有零个或多个副本
  • 副本分片(replica shard) 可从 主分片(primary shard) 复制数据,在主分片丢失时,集群会将副本提升为新的主分片

Read More