# elasticsearch-demo **Repository Path**: hi-liyan/elasticsearch-demo ## Basic Information - **Project Name**: elasticsearch-demo - **Description**: ElasticSearch 快速开始 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-09-02 - **Last Updated**: 2025-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ElasticSearch 快速开始 ## 加依赖 ```xml org.elasticsearch.client elasticsearch-rest-high-level-client 7.14.0 ``` 由于SpringBoot也做了对ES的版本管理,如果项目中的ES版本不是当前实际使用的版本,需要重新指定版本号。(ES依赖的版本必须和使用的ES版本匹配) ```xml 7.14.0 ``` ## 写配置 ```java @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") )); } } ``` ## 测试 ```java @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)); } ``` ## 参考 - [ElasticSearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/7.14/index.html) - [Java High Level REST Client 文档](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html) # Docker 安装 ElasticSearch 通过docker-compose安装 ```yaml 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可视化工具。