## 一、文档说明
本文是为了给需要使用Spring-data-es的开发人员做api说明,方便开发人员快速使用。
## 二、目标人群
后端开发人员使用
## 三、ES文档名词说明
1. 索引index:即ES中文档集合。相当于数据库的database.
2. 类型type: 相当于数据库中的table,其中主键id相当与数据库中的id,是唯一的
向Elasticsearch中存储数据,其实就是向es中的index下面的type中存储json类型的数据.
## 四、集成spring-data-elasticsearch
### 1. 引入依赖maven包
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
### 2. 添加配置信息
开发环境的ES:
```
spring:
data:
elasticsearch:
cluster-nodes: 192.168.254.122:9300
cluster-name: wenwo-es
```
### 3. 建立实体entity
> Spring Data通过注解来声明字段的映射属性,有下面的三个注解:
<html>
<p> <span style="color: rgba(51, 153, 102, 1)"><strong>@Document</strong></span> 作用在类,标记实体类为文档对象,一般有两个属性<br> <strong>indexName</strong>:对应索引库名称<br> <strong>type</strong>:对应在索引库中的类型<br> <strong>shards</strong>:分片数量,默认5<br> <strong>replicas</strong>:副本数量,默认1<br> <span style="color: rgba(51, 153, 102, 1)"><strong>@Id</strong></span> 作用在成员变量,标记一个字段作为id主键<br> <span style="background-color: rgba(255, 255, 255, 1)"><strong><span style="color: rgba(51, 153, 102, 1)"> @Field</span></strong></span> 作用在成员变量,标记为文档的字段,并指定字段映射属性:<br> <strong>type</strong>:字段类型,是枚举:FieldType,可以是text、long、short、date、integer、object等<br> <strong>text</strong>:存储数据时候,会自动分词,并生成索引<br> <strong>keyword</strong>:存储数据时候,不会分词建立索引<br> <strong>Numerical</strong>:数值类型,分两类<br> 基本数据类型:long、interger、short、byte、double、float、half_float<br> 浮点数的高精度类型:scaled_float<br> 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。<br> <strong>Date</strong>:日期类型<br> elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。<br> <strong>index</strong>:是否索引,布尔类型,默认是true<br> <strong>store</strong>:是否存储,布尔类型,默认是false<br> <strong>analyzer</strong>:分词器名称,这里的ik_max_word即使用ik分词器<br>
如果不指定type,程序会自动根据bean的属性类型匹配对应的类型;其中,Date对应的是Long类型数据,因为默认会存储为时间戳。
<br>
</p>
</html>