java代码通过RestHighLevelClient连接带用户名密码的es的示例代码
时间: 2024-12-12 12:23:10 浏览: 11
在Java中,使用`RestHighLevelClient`连接Elasticsearch (ES) 需要首先导入相关的依赖,然后创建一个包含用户名和密码的HTTP基本认证配置。下面是一个简单的示例代码:
```java
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.config.RequestOptions;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.http.HttpHost;
// 导入必要的库
import static org.elasticsearch.client.RestClient.builder;
public class ElasticsearchExample {
private static final String USERNAME = "your_username";
private static final String PASSWORD = "your_password";
public static void main(String[] args) throws Exception {
// 设置ES的URL、用户信息和认证设置
Settings settings = Settings.builder()
.put("cluster.name", "your_cluster_name") // 替换为实际集群名
.build();
HttpHost httpHost = new HttpHost("your_es_host", ES_PORT, "http"); // 替换为ES服务器地址和端口
RestHighLevelClient client = builder(
settings,
// 使用HTTP基本认证
RequestOptions.DEFAULT.withBasicAuth(USERNAME, PASSWORD)
).build(httpHost);
try {
// 这里可以添加你的查询、索引操作等
// 示例:获取索引数据
SearchResponse response = client.search(
"your_index_name", // 替换为你想要搜索的索引名
SearchRequest不合理构造实例... // 构造SearchRequest对象
);
System.out.println(response);
} finally {
client.close();
}
}
}
```
记得替换上述代码中的`your_username`、`your_password`、`your_es_host`、`ES_PORT`以及`your_cluster_name`、`your_index_name`为实际的值。
阅读全文