ElasticSearch 快速开始
ElasticSearch 快速开始
加依赖
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.14.0</version>
</dependency>
由于SpringBoot也做了对ES的版本管理,如果项目中的ES版本不是当前实际使用的版本,需要重新指定版本号。(ES依赖的版本必须和使用的ES版本匹配)
<properties>
<!-- 这里需要将ES版本设置成当前实际使用的版本 -->
<elasticsearch.version>7.14.0</elasticsearch.version>
</properties>
写配置
@Configuration
public class ElasticSearchConfig {
// 这两个属性配置在yml中了
@Value("${es.host}")
private String host;
@Value("${es.port}")
private Integer port;
// 在使用ES客户端时会用到
public static final RequestOptions COMMON_OPTIONS;
static {
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
COMMON_OPTIONS = builder.build();
}
@Bean
public RestHighLevelClient restHighLevelClient() {
return new RestHighLevelClient(RestClient.builder(
new HttpHost(host, port, "http")
));
}
}
测试
/**
* 测试保存数据到ES
*/
@Test
public void index(){
// 1. 创建IndexRequest实例,指定索引
IndexRequest indexRequest = new IndexRequest("users");
indexRequest.id("1"); // 设置id
User user = new User("李达康", 45, "男");
// 2. 将要保存到ES中的对象转为Json字符串存进去
indexRequest.source(JSON.toJSONString(user), XContentType.JSON);
// 3. 调用index()方法执行保存操作,这里用到了配置类中定义的COMMON_OPTIONS
IndexResponse indexResponse = client.index(indexRequest, ElasticSearchConfig.COMMON_OPTIONS);
System.out.println(JSON.toJSONString(indexResponse));
}
参考
Docker 安装 ElasticSearch
通过docker-compose安装
version: '2'
services:
elasticsearch:
image: elasticsearch:7.14.0
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /Users/liyan/docker-data/elasticsearch/data:/usr/share/elasticsearch/data
- /Users/liyan/docker-data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
environment:
- discovery.type=single-node
kibana:
image: kibana:7.14.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://192.168.2.2:9200
说明:
- 安装时最好将
plugins
目录挂载到本地,方便安装插件。 Kibana
是Elastic可视化工具。