2.1 文档(Document)
- ElasticSerach 是面向文档的,文档是所有可能搜索数据的最小单位
- 日志文件中的日志项目
- 一部电影的具体信息
- MP3播放器的一首歌曲/一片PDF文档中的具体内容
- 文档会被序列化成JSON格式,保存在ElasticSerach中
- 每个文档都有Unique ID,可以自己生成或由ES生成
2.1.1 文档的元数据

2.2 索引(Index)

索引的不同语义

2.3 类型(Type)

2.4 Mapping
2.4.1 什么是Mapping
- Mapping类似于数据库的schema的定义,作用:
- 定义索引的字段名称
- 定义字段的数据类型,例如字符串,数字,布尔等
- 字段,倒排索引的相关配置
- Mapping会把JSON文档映射成Lucene所需的扁平格式
- 一个Mapping属于一个索引的Type
- 简单类型
- Text/Keyword
- Date
- Integer / Floating
- Boolean
- IPv4 / Ipv6
- 复杂对象类型
- 对象类型 / 嵌套类型
- 特殊类型
index-控制当前字段是否被索引,如果为false则该字段不可以被搜索
PUT /users { “mappings”: { “properties”: { “user”: { “type”: “text” }, “component”: { “type”: “text”, “index”: false }, “mobile”: { “type”: “text” } } } }
PUT users/_doc/1 { “user”:”SmallWolf”, “component”: [“hello”,”world”], “mobile”:”1888888888” }
GET users/_search { “query”: { “match”: { “component”: “hello” } } }
<a name="U22Hc"></a>## 2.4.5 Index Options- 四种不同级别的Index Options配置,可以控制倒排索引的内容- docs - 记录docid- freqs - 记录docid和term frequencies- positions - 记录docid和term frequencies和term position- offsets - 记录docid和term frequencies和term position和character offects- Text类型默认为position,其它默认docs- 记录内容越多,占用存储空间越大```bashPUT /users{"mappings": {"properties": {"user": {"type": "text"},"component": {"type": "text","index_options": "offsets"}}}}
2.4.5 copy_to设置
2.4.6 数组类型
ES中不提供专门的数组类型。但是任何字段,都可以包含多个相同类型的数值
2.4 节点、集群、分片及副本
- 高可用:服务可用性-允许有节点停止服务、数据可用性-部分节点丢失,不会丢失数据
- 可扩展性:请求提升/数据不断增长 可以将数据分布到不同的节点中

