Spring Boot 与检索
在Docker中安装
同样的先下载镜像
1 | docker pull elasticsearch |
如果觉得下载的慢的可以换中国源:
1 | docker pull registry.docker-cn.com/library/elasticsearch |
因为Elasticsearch
是使用Java写的,默认会使用2G内存空间,如果空间不足,可以在启动时限制内存空间
1 | docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p9300:9300 --name yourname elasticsearch |
- Web通信: 9200
- 节点之间的通信(分布式情形下): 9300
- 初始占用内存: -Xms
- 最大占用内存: -Xmx
在Spring Boot中使用
在application.properties
或application.yml
中指定Elasticsearch
的位置
1 | spring.elasticsearch.jest.uris=http://localhost:9200 |
使用Jest操作Elasticsearch
引入依赖
1 | <!-- https://mvnrepository.com/artifact/io.searchbox/jest --> |
自动注入
1 |
|
新建索引
1 | Index index = new Index.Builder(object).index("demo").type("news").build(); |
搜索
1 | //查询表达式 |
具体到Elasticsearch: 权威指南查看,但由于中文版指南最后一次更新是2016年,可能过时了
使用Spring Data Elasticsearch
使用Spring Data Elasticsearch
要注意版本问题,下面是版本号的对应情况
spring data elasticsearch | elasticsearch |
---|---|
3.2.x | 6.5.0 |
3.1.x | 6.2.2 |
3.0.x | 5.5.0 |
2.1.x | 2.4.0 |
2.0.x | 2.2.0 |
1.3.x | 1.5.2 |
ElasticsearchRepository
创建一个用于保存的实体类
1 | "demoIndex", type = "demoType") (indexName = |
创建一个ElasticsearchRepository
的子接口,ElasticsearchRepository<T, ID extends Serializable>
需要接收两个类型,一是要保存的对象,而是对象的主键(要可序列化的)
1 |
|
自动注入
1 |
|
ElasticsearchTemplate
1 |
|