快速入门
编辑快速入门
编辑本页面将指导您完成 Java 客户端的安装过程,展示如何实例化客户端,以及如何使用它执行基本的 Elasticsearch 操作。
要求
编辑- Java 8 或更高版本。
- 一个 JSON 对象映射库,以便您的应用程序类能够与 Elasticsearch API 无缝集成。下面的示例展示了与 Jackson 的用法。
安装
编辑使用 Jackson 在 Gradle 项目中安装
编辑dependencies { implementation 'co.elastic.clients:elasticsearch-java:8.16.0' implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0' }
使用 Jackson 在 Maven 项目中安装
编辑在项目的 pom.xml
中,添加以下仓库定义和依赖项
<project> <dependencies> <dependency> <groupId>co.elastic.clients</groupId> <artifactId>elasticsearch-java</artifactId> <version>8.16.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies> </project>
请参考安装页面了解更多信息。
连接
编辑您可以使用 API 密钥和 Elasticsearch 端点连接到 Elastic Cloud。
// URL and API key String serverUrl = "https://127.0.0.1:9200"; String apiKey = "VnVhQ2ZHY0JDZGJrU..."; // Create the low-level client RestClient restClient = RestClient .builder(HttpHost.create(serverUrl)) .setDefaultHeaders(new Header[]{ new BasicHeader("Authorization", "ApiKey " + apiKey) }) .build(); // Create the transport with a Jackson mapper ElasticsearchTransport transport = new RestClientTransport( restClient, new JacksonJsonpMapper()); // And create the API client ElasticsearchClient esClient = new ElasticsearchClient(transport); // Use the client... // Close the client, also closing the underlying transport object and network connections. esClient.close();
您的 Elasticsearch 端点可以在部署的我的部署页面上找到
您可以在“安全”下的管理页面上生成 API 密钥。
有关其他连接选项,请参考连接部分。
操作
编辑是时候使用 Elasticsearch 了!本节将引导您完成 Elasticsearch 的基本且最重要的操作。有关更多操作和更高级的示例,请参考使用 Java API 客户端页面。
创建索引
编辑这是创建 product
索引的方法
esClient.indices().create(c -> c .index("products") );
索引文档
编辑这是一种索引文档的简单方法,这里是一个 Product
应用程序对象
Product product = new Product("bk-1", "City bike", 123.0); IndexResponse response = esClient.index(i -> i .index("products") .id(product.getSku()) .document(product) ); logger.info("Indexed with version " + response.version());
获取文档
编辑您可以使用以下代码获取文档
GetResponse<Product> response = esClient.get(g -> g .index("products") .id("bk-1"), Product.class ); if (response.found()) { Product product = response.source(); logger.info("Product name " + product.getName()); } else { logger.info ("Product not found"); }
搜索文档
编辑这是使用 Java 客户端创建单一匹配查询的方法
String searchText = "bike"; SearchResponse<Product> response = esClient.search(s -> s .index("products") .query(q -> q .match(t -> t .field("name") .query(searchText) ) ), Product.class );
更新文档
编辑这是更新文档的方法,例如添加新字段
Product product = new Product("bk-1", "City bike", 123.0); esClient.update(u -> u .index("products") .id("bk-1") .upsert(product), Product.class );
删除文档
编辑esClient.delete(d -> d.index("products").id("bk-1"));
删除索引
编辑esClient.indices().delete(d -> d .index("products") );
示例
编辑Github 仓库中的示例文件夹包含完整的可运行示例,展示了如何设置和使用客户端。
进一步阅读
编辑- 了解有关 Java 客户端的API 约定的更多信息。