入门
编辑入门编辑
本页将引导您完成 Java 客户端的安装过程,并向您展示如何实例化客户端以及如何使用它执行基本的 Elasticsearch 操作。
要求编辑
- Java 8 或更高版本。
- 一个 JSON 对象映射库,允许您的应用程序类与 Elasticsearch API 无缝集成。以下示例展示了与 Jackson 的用法。
安装编辑
使用 Jackson 在 Gradle 项目中安装编辑
dependencies { implementation 'co.elastic.clients:elasticsearch-java:8.14.2' 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.14.2</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);
您可以在部署的 我的部署 页面上找到您的 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 存储库中的 examples 文件夹包含完整的运行示例,展示了如何设置和使用客户端。
进一步阅读编辑
- 了解有关 Java 客户端的 API 约定 的更多信息。