Elasticsearch 是一个分布式搜索引擎,常用于全文搜索、结构化搜索和分析,它可以用于各种类型的数据,包括文本、数字、日期等,以下是几种连接 Elasticsearch 的方法:
通过 HTTP API 进行连接
这是最常用的连接方式,可以使用 HTTP 请求访问 Elasticsearch 的 API,你可以使用标准的 HTTP 库(Python 中的 requests 库)或 Elasticsearch 提供的客户端库来发送请求。

1. 使用 Python 连接 Elasticsearch
在开始之前,确保你的 Elasticsearch 服务已经在服务器上正确安装和配置,以下是一些基本的配置步骤:
修改 Elasticsearch 配置文件:找到 Elasticsearch 的配置文件 elasticsearch.yml,并进行如下修改,以允许远程访问:
network.host: 0.0.0.0 http.port: 9200 discovery.type: single-node
开放防火墙端口:确保服务器的防火墙已经开放了 Elasticsearch 的默认端口 9200,如果你使用的是云服务器,也需要在安全组中开放该端口,你可以通过在浏览器中输入 http://<你的服务器IP>:9200 来测试是否能够正常访问 Elasticsearch,如果配置正确,你应该能看到 Elasticsearch 的欢迎页面。
在本地使用 Python 连接到 Elasticsearch:
安装 Elasticsearch 客户端库:你需要安装 elasticsearch Python 客户端库:

pip install elasticsearch
连接到 Elasticsearch:以下是连接到 Elasticsearch 的示例代码:
from elasticsearch import Elasticsearch 连接到 Elasticsearch,替换为实际的 IP 地址和密码 es = Elasticsearch('http://192.168.111.199:9200', basic_auth=('elastic', 'Elastic_j625sz')) 检查连接 if es.ping(): print('连接成功') else: print('连接失败')
在上述代码中,basic_auth 参数用于传递用户名和密码,如果你的 Elasticsearch 没有设置密码,可以省略该参数。
2. 使用 Java 连接 Elasticsearch
Java 对 Elasticsearch 的操作都是使用 Client 对象执行的,Client 定义的所有 API 都是异步执行的(要么使用事件监听器回调或者使用 Future 模式),Java 操作 ES 的 Client 有两种:TransportClient 和 RestClient,Elasticsearch 7.0 中开始弃用 TransportClient,在 8.0 中完全删除它,故在实际使用过程中建议使用 Java 高级 REST client。
添加 Maven 依赖:在你的pom.xml
文件中添加以下依赖项来使用 RestHighLevelClient:
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.10.2</version> </dependency>
创建 RestHighLevelClient 实例:创建一个 RestHighLevelClient 实例并连接到 Elasticsearch:

import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; public class ESConnection { public static void main(String[] args) { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 现在你可以使用 client 对象与 Elasticsearch 进行交互 // ... // 关闭客户端连接 try { client.close(); } catch (IOException e) { e.printStackTrace(); } } }
在上述代码中,我们创建了一个 RestHighLevelClient 实例,并通过 RestClient.builder() 方法指定了 Elasticsearch 的主机地址和端口号,我们可以使用这个 client 对象与 Elasticsearch 进行交互,例如创建索引、插入文档、搜索等操作。
3. 使用 Kibana 连接 Elasticsearch
Kibana 是 Elastic 公司开发的开源数据可视化平台,可以用于查询、可视化和分析 Elasticsearch 中的数据,你可以使用 Kibana 的 Elasticsearch 连接来连接 Elasticsearch,下载与安装:根据环境下的 ES 版本来选择 Kibana 下载,版本差异太大,Kibana 与 ES 无法链接创建索引,在 window 中安装 Kibana 很方便,解压即安装,配置与启动:找到装好的 Kibana 的文件夹,修改 kibana 配置:config/kibana.yml,这里主要修改对 ES 连接的设置:server.port: 5601server.host: "0.0.0.0" #允许来自远程用户的连接elasticsearch.url: http://192.168.222.136:9200 #Elasticsearch 实例的 URL两种方式启动 a. 在 bin 目录下执行命令 kibana.bat b. 在 bin 目录下双击 kibana.bat 文件浏览器访问 localhost:5601
通过 Logstash 进行连接
Logstash 是 Elastic 公司开发的开源数据收集引擎,可以用于从各种数据源收集数据并将其导入 Elasticsearch,你可以使用 Logstash 的 Elasticsearch 输出插件来连接 Elasticsearch。
三、通过 Chrome 谷歌浏览器插件 Elasticsearch Head 进行连接
从这个地址直接下载压缩包,解压后,点击“加载已解压的压缩程序”,找到 elasticsearch-head 文件夹,点击打开即可进行安装,打开插件,进行连接。
相关问答FAQs
问题1:如何通过 HTTP API 连接 Elasticsearch?
答:可以通过使用标准的 HTTP 库(如 Python 中的requests
库)或 Elasticsearch 提供的客户端库来发送 HTTP 请求访问 Elasticsearch 的 API,在 Python 中,首先需要安装elasticsearch
客户端库,然后使用Elasticsearch
类连接到 Elasticsearch,并传递 IP 地址、端口号以及认证信息(如果需要)。es = Elasticsearch('http://192.168.111.199:9200', basic_auth=('elastic', 'Elastic_j625sz'))
,之后可以通过调用es.ping()
方法来检查连接是否成功。
问题2:如何在 Java 中使用 RestHighLevelClient 连接 Elasticsearch?
答:在 Java 中使用 RestHighLevelClient 连接 Elasticsearch,需要在 Maven 项目中添加相应的依赖项,创建一个 RestHighLevelClient 实例,并通过 RestClient.builder() 方法指定 Elasticsearch 的主机地址和端口号。RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
,这样,就可以使用 client 对象与 Elasticsearch 进行交互,如创建索引、插入文档、搜索等操作。
到此,以上就是小编对于搜索引擎es怎么连接的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。