使用java连接Elasticsearch
我是使用java连接Elasticsearch,java,elasticsearch,resthighlevelclient,Java,elasticsearch,Resthighlevelclient,我是java新手,来自python。我知道有很多答案可以将ElasticSearch与java连接起来。但我很难理解,有些已经过时了。在python中,我可以轻松导入elasticsearch模块并连接到它 以下是python中的代码: from elasticsearch import Elasticsearch es = Elasticsearch('localhost', port=9200, http_auth=('username', 'password'), scheme="http
java
新手,来自python
。我知道有很多答案可以将ElasticSearch
与java
连接起来。但我很难理解,有些已经过时了。在python中,我可以轻松导入elasticsearch
模块并连接到它
以下是python中的代码:
from elasticsearch import Elasticsearch
es = Elasticsearch('localhost', port=9200, http_auth=('username', 'password'), scheme="http")
但是在java
中,我在pom.xml
中包含了elasticsearch
maven依赖项。我想连接到elasticsearch
。我知道RestHighLevelClient
可以完成这项工作。我找到了这个密码。但不知道如何让它连接到弹性搜索
public RestHighLevelClient createESRestClient() {
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPassword));
RestClientBuilder restClientBuilder = RestClient
.builder(new HttpHost(esRestclientHost, 9200, "http"));
// Use this one if your ElasticSearch server is setup to use username & password authentication
if (esAuthentication) {
restClientBuilder.setHttpClientConfigCallback(h -> h.setDefaultCredentialsProvider(credentialsProvider));
}
return new RestHighLevelClient(restClientBuilder);
}
任何人都可以帮助我或向我展示一些示例代码,以使用java连接弹性搜索。在python中,它分两行完成。帮助我使用
java
对于当前版本的java REST Client 7.5,请按照以下说明操作:
,ElasticSearch客户端:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.5.2</version>
</dependency>
对于当前版本的Java REST客户端版本7.5,请按照以下说明操作: ,ElasticSearch客户端:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.5.2</version>
</dependency>
要使用java连接elasticsearch,可以使用以下代码:
public class ElasticsearchClient {
//private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
private final RestHighLevelClient client;
public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
client = new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchConfig.getHost(),
elasticsearchConfig.getPort(), "http")));
}
}
弹性搜索配置:
host: localhost
port: 9200
- 有关更多信息,请参见和
pom.xml
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${es.client.version}</version>
</dependency>
要使用java连接elasticsearch,可以使用以下代码:
public class ElasticsearchClient {
//private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
private final RestHighLevelClient client;
public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
client = new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchConfig.getHost(),
elasticsearchConfig.getPort(), "http")));
}
}
弹性搜索配置:
host: localhost
port: 9200
- 有关更多信息,请参见和
pom.xml
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${es.client.version}</version>
</dependency>
您的elasticsearch正在运行吗??你在cmd中检查过吗???@Vishwa Ratna,是的,它在端口9200中运行良好。信息:你的elasticsearch正在运行吗??您是否在cmd中检查过它???@Vishwa Ratna,是的,它在端口9200中运行良好。信息性:@Paul Steven您可以查看我答案的更新部分,了解如何在代码内部添加主机和端口,而不是单独的配置文件:)@Paul Steven您现在可以解决您的查询了吗?谢谢。。。。成功了。我想从弹性搜索索引中获取数据。这里是python中获取es索引数据的代码:
query={'query':{'bool':{'must':[{}}]、'must_-not':[]、'should':[]}、'size':10000};results=es.search(index='index name',body=query)
你能用java帮助我获取es索引数据吗?在httpHost
@中,es的用户名和密码放在哪里?你可以参考此内容,了解如何为es添加身份验证es@PaulSteven您可以浏览我答案的更新部分,了解如何在代码本身中添加主机和端口,而不是单独的配置文件:)@Paul Steven您现在可以解决您的查询了吗?谢谢。。。。成功了。我想从弹性搜索索引中获取数据。这里是python中获取es索引数据的代码:query={'query':{'bool':{'must':[{}}]、'must_-not':[]、'should':[]}、'size':10000};results=es.search(index='index name',body=query)
你能用java帮助我获取es索引数据吗?es的用户名和密码放在httpHost
@PaulSteven你可以参考此了解如何为ESA添加身份验证。es的用户名和密码放在httpHost的哪里?@PaulSteven回答。来源于elasticsearch网站:在httphost中es的用户名和密码放在哪里?@PaulSteven回答道。来源于elasticsearch网站: