Elasticsearch Java高级Rest客户端(已弃用)VS Java客户端API

vvppvyoh  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(2)|浏览(367)

我是ElasticSearch的新手,我们的团队正在开发一个与Elasticsearch服务器通信的spring-boot应用程序。实际上,该应用程序的目的是MapElasticsearch暴露的其余方法,以便从Controller类中用postman调用ES服务器。
我看到有一个全新的Java客户端Api 8.4,但是我在文档中找不到如何删除一个索引文档。看起来Java客户端Api没有Rest客户端Api那么完整。
所以问题是:Java Rest客户端和Java客户端API有什么区别?我应该使用哪一个?我知道高级客户端已经过时了,但是正如我提到的,我不知道如何调用方法,比如通过查询删除...
我知道也有Spring Data ElasticSearch的Spring启动,但我会使用Java客户端,它允许与原始json格式的工作
谢谢你,萨维里奥

stszievb

stszievb1#

Tldr;

java API client documentation是故意短的。故意看起来就像它已经在elasticsearch的主要文档中描述过一样。
要获得完整的参考资料,请参阅Elasticsearch文档,特别是REST API部分。Java API客户端严格遵循此处描述的JSON结构,使用Java API约定。

溶液

Delete by query(第一个字母)

它很可能类似于使用不同函数名的搜索查询。

SearchResponse<Product> response = esClient.search(s -> s // delete_by_query ?
    .index("products") 
    .query(q -> q      
        .match(t -> t   
            .field("name")  
            .query(searchText)
        )
    ),
    Product.class      
);
jc3wubiy

jc3wubiy2#

ElasticsearchClient有一个delete() api(请参阅javadoc),用于从索引中删除文档,其用法与其他方法没有太大区别。
例如:

DeleteRequest request = DeleteRequest.of(i -> i.index("your-index").id("document-id"))
DeleteResponse<Product> response = client.delete(request);

应该可以。

相关问题