当前位置: 首页 > 图灵资讯 > 技术篇> java es工具类

java es工具类

来源:图灵教育
时间:2023-12-26 09:32:20

Java 简要介绍ES工具

Java ES工具类是一组工具类,旨在简化与Elasticsearch(以下简称ES)集成的开发过程。ES是一种高性能的开源搜索引擎,具有很强的搜索、分析和数据聚合能力。在Java应用程序中使用ES通常需要编写大量代码来完成与ES的交互操作,如创建索引、搜索数据、聚合数据等。Java ES工具提供了一系列简单易用的API,帮助开发人员快速构建与ES集成的应用程序。

安装和配置

使用Java 在ES工具类之前,需要安装Elasticsearch,并配置Java开发环境。以下是安装和配置的简要步骤:

  1. 下载并安装elasticsearch。您可以从官方网站下载适合您操作系统的版本,并根据官方文件进行安装。

  2. 配置Elasticsearch。安装目录下config可以在文件夹中找到elasticsearch.yml配置ES参数的文件。根据需要修改配置文件,重启ES服务,使配置生效。

  3. Java开发环境的配置。确保您的开发环境已正确配置Java开发工具包(JDK)和Maven(如果使用Maven构建项目)。

  4. Java介绍在项目中 依赖ES工具。在pom.xml(如使用Maven)或在构建文件中添加以下依赖:

    <dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-high-level-client</artifactId>    <version>7.15.0</version></dependency>
  5. 创建ES工具类。在Java项目中创建ES工具类,用于封装和ES之间的交互操作。

使用示例

以下是如何使用Java的简单示例。 ES工具类创建索引、添加文档和搜索操作。

首先,创建一个名字ESUtilsJava类,并添加必要的导入语句:

import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.action.search.SearchRequest;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.client.RequestOptions;import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.common.unit.TimeValue;import org.elasticsearch.index.query.QueryBuilders;import org.elasticsearch.search.builder.SearchSourceBuilder;import org.elasticsearch.search.sort.SortOrder;import org.elasticsearch.search.sort.SortBuilders;import org.elasticsearch.search.sort.FieldSortBuilder;import java.io.IOException;

接下来,创建一个createIndex创建索引的方法:

public static void createIndex(String indexName) throws IOException {    RestHighLevelClient client = new RestHighLevelClient(/*Elasticsearch连接配置*/);        CreateIndexRequest request = new CreateIndexRequest(indexName);        CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);        if (response.isAcknowledged()) {        System.out.println("Index created successfully.");    }        client.close();}

然后,创建一个addDocument该方法用于向索引添加文档:

public static void addDocument(String indexName, Map<String, Object> document) throws IOException {    RestHighLevelClient client = new RestHighLevelClient(/*elasticsearch连接配置*/;        IndexRequest request = new IndexRequest(indexName);    request.source(document);        IndexResponse response = client.index(request, RequestOptions.DEFAULT);        if (response.getResult() == DocWriteResponse.Result.CREATED) {        System.out.println("Document added successfully.");    }        client.close();}

最后,创建一个searchDocuments该方法用于搜索文档:

public static void searchDocuments(String indexName, String keyword) throws IOException {    RestHighLevelClient client = new RestHighLevelClient(/*elasticsearch连接配置*/;        SearchRequest request = new SearchRequest(indexName);    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();    sourceBuilder.query(QueryBuilders.matchQuery("content", keyword));    sourceBuilder.sort(SortBuilders.fieldSort("timestamp").order(SortOrder.DESC));    sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));    request.source(sourceBuilder);        SearchResponse response = client.search(request, RequestOptions.DEFAULT);        if (response.getHits().getTotalHits().value > 0) {        SearchHits hits = response.getHits();        for (SearchHit hit : hits) {            System.out.println(hit.getSourceAsString());        }    } else {        System.out.println