Glossary of terms (词汇表)
- analysis(分析)
- cluster (集群)
- document (文档)
- id
- field(属性)
- index (索引)
- mapping (映射)
- node (节点)
- primary shard (主分片)
- replica shard (副本分片)
- routing (路由)
- shard (分片)
- source field (源属性)
- term (词条)
- text (文本)
- type (类型)
Analysis(分析)是将full text(全文)转化为terms(词条)的过程。使用不同的 analyzer(分词器),
FOO BAR,Foo-Bar,foo,bar这些短语可能都会生成foo和bar两个词条,实际的index(索引)里面存储的就是这些terms(词条)。针对FoO:bAR的full text query(全文检索),会先将其分析成为foo,bar这样的词条,然后匹配存储在index(索引)中的term(词条)。正是这个analysis(分析)的过程(发生在索引和搜索时)使得elasticsearch能够执行full text queries(全文检索)。也可以参阅
text
(文本)和
term
(词条)了解更多细节信息。
cluster(集群)是由拥有同一个集群名的一个或者多个节点组成。每个集群拥有一个主节点,它由集群自行选举出来,在当前主节点挂了,能被其他节点取代。
document(文档)是存储在elasticsearch中的json文档。类似于关系型数据库中的一行记录。每个文档存储在一个index(索引)中,它具有一个type(类型)和一个id。文档是包含零到多个fields(属性)或者键值对的json对象(类似于其他语言中的hash/hashmap/associative array)。当一个文档被indexed(索引)的时候,它的原始json文档会被存储成_source属性,对该文档进行get或者search操作时,默认返回的就是改属性。
文档的ID标识一个文档。文档的index/type/id必须唯一。如果没有提供ID,elasticsearch会自动生成一个ID。(查询routing(路由)获取更多信息)
一个文档包涵一系列的属性或者键值对。它的值可以是简单标量值(如字符串,整型数,日期),或者是像数组和对象一样的嵌套结构。属性类似于关系型数据库中的列。每个属性的mapping(映射)都有其类型(不同于document(文档)的type(类型)),表明该属性能存储成改类型的数据,例如
integer
, string
, object。mapping(映射)也允许你定义属性的值是否需要analyzed(分词)。
index(索引)类似于关系型数据库中的表。它有一个mapping(映射)来定义索引中的fields(属性),这些属性被分组成多种type(类型)。索引是一个逻辑命名空间,它对应一到多个primaryshards(主分片)和零到多个replica shards(副本分片)。
mapping(映射)类似于关系型数据库中的元数据定义。每一个index(索引)对应一个mapping(映射),它定义了index(索引)中的每一个type(类型),另外还有一些索引级别的设置。mapping(映射)可以显式定义,或者当一个文档进行索引时自动生成。
node(节点)是从属于一个elasticsearch集群的正在运行的节点。当以测试为目的时,可以在一台主机上启动多个节点,但是通常一台主机最好运行一个节点。在启动时,节点会使用广播的方式,自动感知(网络中)具有相同集群名的集群,并尝试加入它。
每个文档存储在单primary shard(主分片)中。当索引一个文档时,它会首先被索引到主分片上,然后索引到主分片的所有副本上。默认情况下,一个index