springboot-elacticsearch
personal elasticsearch project
elasticsearch 版本为5.5.0,elasticsearch自己装一个虚拟机或者本机上面启动就行
linux 下载elasticsearch:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
spring-data-elasticsearch 与elasticsearch连接,省去自己的一部分工作量
具体spring-data-elasticsearch项目参考:https://github.com/spring-projects/spring-data-elasticsearch
具体的项目代码在git上面,git地址:https://github.com/LanceGG/springboot-elasticsearch
es索引实体类
Spring-data-elasticsearch为我们提供了@Document
、@Field
等注解,如果某个实体需要建立索引,只需要加上这些注解即可
1.类上注解:@Document (相当于Hibernate实体的@Entity/@Table)(必写),加上了@Document
注解之后,默认情况下这个实体中所有的属性都会被建立索引、并且分词。
类型 | 属性名 | 默认值 | 说明 |
---|---|---|---|
String | indexName | 无 | 索引库的名称,建议以项目的名称命名 |
String | type | “” | 类型,建议以实体的名称命名 |
short | shards | 5 | 默认分区数 |
short | replica | 1 | 每个分区默认的备份数 |
String | refreshInterval | “1s” | 刷新间隔 |
String | indexStoreType | “fs” | 索引文件存储类型 |
2.主键注解:@Id (相当于Hibernate实体的主键@Id注解)(必写)
只是一个标识,并没有属性。
3.属性注解 @Field (相当于Hibernate实体的@Column注解)
@Field默认是可以不加的,默认所有属性都会添加到ES中。加上@Field之后,@document默认把所有字段加上索引失效,只有家@Field 才会被索引(同时也看设置索引的属性是否为no)
类型 | 属性名 | 默认值 | 说明 |
---|---|---|---|
FieldType | type | FieldType.Auto | 自动检测属性的类型 |
FieldIndex | index | FieldIndex.analyzed | 默认情况下分词 |
boolean | store | false | 默认情况下不存储原文 |
String | searchAnalyzer | “” | 指定字段搜索时使用的分词器 |
String | indexAnalyzer | “” | 指定字段建立索引时指定的分词器 |
String[] | ignoreFields | {} | 如果某个字段需要被忽略 |