入门
编辑入门编辑
本页面将指导您完成 Java 客户端的安装过程,向您展示如何实例化客户端,以及如何使用它执行基本的 Elasticsearch 操作。
要求编辑
- Java 8 或更高版本。
- 一个 JSON 对象映射库,允许将应用程序类与 Elasticsearch API 无缝集成。以下示例展示了如何使用 Jackson。
安装编辑
在使用 Jackson 的 Gradle 项目中安装编辑
dependencies { implementation 'co.elastic.clients:elasticsearch-java:8.14.3' 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.3</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 约定。