如何在Java中使用Elasticsearch

如何在Java中使用Elasticsearch

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!

概述

Elasticsearch 是一个开源的分布式搜索引擎,用于全文搜索、结构化搜索和分析。本文将介绍如何在Java应用程序中使用Elasticsearch,包括连接、索引文档、搜索以及一些最佳实践。

连接到Elasticsearch

要在Java中使用Elasticsearch,首先需要添加 Elasticsearch Java 客户端库的依赖。推荐使用官方提供的 High Level REST Client。

Gradle 依赖配置示例
dependencies {
   
    implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.0'
}
Maven 依赖配置示例
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.17.0</version>
</dependency>

建立连接

使用 RestClient 建立与 Elasticsearch 的连接:

package cn.juwatech.elasticsearch;

import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;

public class ElasticsearchClient {
   

    private static final String ELASTICSEARCH_HOST = "localhost";
    private static final int ELASTICSEARCH_PORT = 9200;

    public RestHighLevelClient createClient
<< 在 Java使用 Elasticsearch(简称 ES)可以通过官方提供的客户端库进行交互。以下是如何在项目中集成并操作 ES 的详细步骤。 ### 步骤一:引入依赖 首先确保您的环境中已经安装了 Maven 或 Gradle,并且您已经在 `pom.xml` 文件中添加 ElasticSearch 客户端依赖项: ```xml <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.10.2</version> </dependency> <!-- 引入其他必要依赖 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> ``` 如果使用的是Gradle,则可以在build.gradle文件里加入类似的配置: ```groovy implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.10.2' implementation 'org.apache.httpcomponents:httpclient:4.5.13' ``` ### 步骤二:创建连接实例 接下来,我们演示如何通过 REST 高级 API 来创建与Elasticsearch服务器之间的链接。 #### 示例代码 - 连接至远程节点 这里展示了一个简单的例子用来初始化RestHighLevelClient对象并且执行索引查询请求的操作过程: ```java import org.apache.http.HttpHost; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; public class ElasticsearchExample { public static void main(String[] args) throws Exception{ // 创建 RestHighLevelClient 实例 try (RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http")))) { String jsonString = "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\","+ "\"message\":\"trying out Elasticsearch\""+ "}"; IndexRequest indexRequest = new IndexRequest("posts") .id("1") .source(jsonString); IndexResponse response = client.index(indexRequest, RequestOptions.DEFAULT); System.out.println(response.toString()); } } } ``` 在这段示例程序当中,我们将一条消息存储到了名为“posts”的索引之下;其中包含了用户名、日期以及具体内容等字段信息。 ### 解释: 上述示例展示了几个关键点: 1. 使用 `RestHighLevelClient` 构造函数建立到本地运行的 Elasticsearch 节点上的 HTTP 连接。 2. 利用 JSON 格式的数据构建一个文档并通过调用 `index()` 方法将其存入指定索引之中。 3. 最后打印出返回结果以确认插入成功与否。 ### 注意事项: - 确保目标地址正确无误地指向实际部署位置,默认情况下是 localhost 和 port 为 9200. - 在真实场景应用时建议采用更安全的方式如 https 加密传输数据流等等手段保护通信内容免受中间人攻击风险影响。 - 当不再需要该资源的时候一定要记得关闭掉已打开的所有 channel 或者 connection ,防止发生内存泄漏等问题的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值