`

elasticsearch java api——客户端 org.elasticsearch.client

阅读更多

elasticsearch java api——客户端 org.elasticsearch.client

 

 

在elasticsearch源代码中,进入到org.elasticsearch.client,你会发现下图所示的类:

我们从最外层开始。

1 org.elasticsearch.client.AdminClient接口

AdminClient下有两个方法:
1) cluster(),产生一个允许从集群中执行action或操作的client;
2) indices(),产生一个允许从索引中执行action或操作的client。

AdminClient接口有两个实现类,分别为org.elasticsearch.client.AdminClient.NodeAdminClient和org.elasticsearch.client.transport.support.InternalTransportAdminClient。

1.1 org.elasticsearch.client.AdminClient.NodeAdminClient类

NodeAdminClient有一个带有@Inject注解的构造器,并实现了接口AdminClient的两个方法,如下所示:

[java] view plaincopy
 
 
  1. @Inject  
  2. public NodeAdminClient(Settings settings, NodeClusterAdminClient clusterAdminClient, NodeIndicesAdminClient indicesAdminClient) {  
  3.     super(settings);  
  4.     this.indicesAdminClient = indicesAdminClient;  
  5.     this.clusterAdminClient = clusterAdminClient;  
  6. }  
  7.   
  8. @Override  
  9. public IndicesAdminClient indices() {  
  10.     return indicesAdminClient;  
  11. }  
  12.   
  13. @Override  
  14. public ClusterAdminClient cluster() {  
  15.     return this.clusterAdminClient;  
  16. }  

@Inject导致了一个直接的后果:你只能通过被@Inject标注的构造器生成实例。

indices()和cluster()覆盖了AdminClient的同名方法,分别返回NodeIndicesAdminClient和NodeClusterAdminClient对象。

NodeAdminClient会继承父类org.elasticsearch.common.component.AbstractComponent的nodeName()方法用以获取当前节点的名称。

1.2 org.elasticsearch.client.transport.support.InternalTransportAdminClient类

InternalTransportAdminClient其实与NodeAdminClient类似,只是它的indices()和cluster()分别返回的是InternalTransportIndicesAdminClient和InternalTransportClusterAdminClient。

NodeAdminClient和InternalTransportAdminClient均没有子类,所以只有当我们需要用到NodeIndicesAdminClient、NodeClusterAdminClient、InternalTransportIndicesAdminClient或InternalTransportClusterAdminClient时,才考虑创建这两个类的实体。

2 org.elasticsearch.client.Client接口

Client为从集群中执行action或operation提供了一站式接口,这里的所有操作都是自然而然地异步执行的,每个action或operation都有两种风格,一种是简单地返回一个org.elasticsearch.action.ActionFuture,另一种是访问一个org.elasticsearch.action.ActionListener。你可以在org.elasticsearch.node.Node启动时取得一个Client,也可以使用org.elasticsearch.client.transport.TransportClient远程连接一个或多个节点。

Client有以下方法:

1) close(),关闭客户端;

2) admin(),返回一个可以执行管理性操作的客户端;

3) 两个execute,用于执行一般性操作,这里的一般性与上文提到的管理性相对;

4) prepareExecute,准备一个RequestBuilder对象,得到RequestBuilder对象后再做执行操作,当然,在这之间,你可以做一些个性化设置;

5) index(IndexRequest request),根据给写的index和type索引一个JSON资源,index和type由IndexRequest提供,IndexRequest也可提供id,若不提供时,id将自动生成;

6) index(IndexRequest request, ActionListener<IndexResponse> listener),与index(IndexRequest request)的区别在于它不会直接返回索引创建的结果,而是将结果转给监听器,由listener来通知请求者;

7) prepareIndex()、prepareIndex(String index, String type)、prepareIndex(String index, String type, @Nullable String id),准备创建索引,但不创建索引;

8) update(UpdateRequest request),基于一个script更新文档,返回更新后的结果;

9) update(UpdateRequest request, ActionListener<UpdateResponse> listener),更新,但不返回结果,而是交由监听器;

10) prepareUpdate()、prepareUpdate(String index, String type, String id),准备更新,但不执行更新;

11) delete(DeleteRequest request)、delete(DeleteRequest request, ActionListener<DeleteResponse> listener),根据DeleteRequest提供的index、type和id从索引中删除文档;

12) prepareDelete()、prepareDelete(String index, String type, String id),准备删除,但不执行删除;

13) bulk(BulkRequest request)、bulk(BulkRequest request, ActionListener<BulkResponse> listener),批量操作;

14) prepareBulk(),准备执行批量操作,但不执行;

15) deleteByQuery(DeleteByQueryRequest request)、deleteByQuery(DeleteByQueryRequest request, ActionListener<DeleteByQueryResponse> listener),基于查询删除索引;

16) prepareDeleteByQuery(String... indices),准备删除,但不执行删除;

17) get(GetRequest request)、get(GetRequest request, ActionListener<GetResponse> listener)根据GetRequest提供的index、type和id获取文档;

18) prepareGet()、prepareGet(String index, @Nullable String type, String id),准备获取,但不执行获取;

19) multiGet(MultiGetRequest request)、multiGet(MultiGetRequest request, ActionListener<MultiGetResponse> listener),批量获取文档;

20) prepareMultiGet(),准备批量获取,但不执行获取操作;

21) count(CountRequest request)、count(CountRequest request, ActionListener<CountResponse> listener),获取适应特定query的文档数量;

22) prepareCount(String... indices),准备获取适应特定query的文档数量,但不获取;

23) search(SearchRequest request)、search(SearchRequest request, ActionListener<SearchResponse> listener),根据SearchRequest提供的index、id和type执行搜索;

24) prepareSearch(String... indices),准备但不搜索;

25) searchScroll(SearchScrollRequest request)、searchScroll(SearchScrollRequest request, ActionListener<SearchResponse> listener)、prepareSearchScroll(String scrollId),通过用于迭代搜索结果;

26) multiSearch(MultiSearchRequest request)、multiSearch(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener)、prepareMultiSearch(),执行多个搜索请求;

27) moreLikeThis(MoreLikeThisRequest request)、moreLikeThis(MoreLikeThisRequest request, ActionListener<SearchResponse> listener)、prepareMoreLikeThis(String index, String type, String id),类似于数据库中的like操作,先根据index、type、id找到一个document,再找到跟这个文档like的其他文档;

28) percolate(PercolateRequest request)、percolate(PercolateRequest request, ActionListener<PercolateResponse> listener)、preparePercolate(String index, String type),过滤一个请求,返回匹配的结果;

29) explain(ExplainRequest request)、explain(ExplainRequest request, ActionListener<ExplainResponse> listener)、prepareExplain(String index, String type, String id),为指定的请求计算一个score

 

参考文献:http://blog.csdn.net/geloin/article/details/8448691

分享到:
评论

相关推荐

    ElasticSearch Java API 中文文档

    标签《ES Java API 中文文档》强调了文档的内容属性,它属于ElasticSearch的一个重要组成部分,即用Java语言进行数据交互和操作的应用程序接口部分。 从部分内容中可以提取出以下知识点: 1. **Transport Client**...

    elasticsearch中文文档——基于7.11.zip

    **Elasticsearch中文文档——基于7.11版本** Elasticsearch是一款强大的开源搜索引擎,它以分布式、实时、全文检索的特性而广受开发者欢迎。7.11版本是其历史上的一个重要版本,包含了多项改进和优化。在这个版本中...

    基于Elasticsearch Java API的参考手册

    **Elasticsearch Java API详解** Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,广泛应用于大数据领域的实时分析和信息检索。Java API是Elasticsearch官方提供的与Elasticsearch服务器进行交互的...

    ElasticSearch java API

    ElasticSearch 官方 java API

    ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

    - **Python Elasticsearch Client**:为Python开发者提供的官方客户端,支持所有Elasticsearch API。 - **Nest**(.NET Elasticsearch Client):是.NET平台上的官方客户端,提供了一种类型安全的方式与Elastic...

    Elasticsearch的javaapi使用.pdf

    - 添加依赖:在Maven项目中,通过以下依赖引入Elasticsearch的Java客户端库: ```xml &lt;groupId&gt;org.elasticsearch &lt;artifactId&gt;elasticsearch &lt;version&gt;0.20.2 ``` - 创建Client对象:`TransportClient`...

    elasticsearch离线JAVA API文档下载

    **Elasticsearch离线Java API文档详解** Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据分析、日志分析和全文检索等场景。它的Java API是开发人员与Elasticsearch进行交互的主要工具,提供了...

    Elasticsearch的JAVA操作工具类,包括增删改查的封装

    在Java环境中,与Elasticsearch进行交互通常会使用官方提供的Java REST客户端。本文将详细介绍如何构建一个封装了基本增删改查功能的Elasticsearch Java工具类。 首先,我们需要引入Elasticsearch的Java客户端依赖...

    elasticsearch-6.8.3-API文档-中文版.zip

    Maven坐标:org.elasticsearch:elasticsearch:6.8.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...

    elasticsearch-rest-high-level-client-6.8.3-API文档-中文版.zip

    Maven坐标:org.elasticsearch.client:elasticsearch-rest-high-level-client:6.8.3; 标签:elasticsearch、client、rest、high、level、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开...

    org.apache.servicemix.bundles.elasticsearch-1.0.1_1.zip

    标题中的"org.apache.servicemix.bundles.elasticsearch-1.0.1_1.zip"表明这是一个与Apache ServiceMix相关的软件包,特别地,它包含了Elasticsearch的一个特定版本(1.0.1)的bundle。Apache ServiceMix是基于Java...

    elasticsearch-6.2.3-API文档-中文版.zip

    Maven坐标:org.elasticsearch:elasticsearch:6.2.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...

    elasticsearch-6.3.0-API文档-中文版.zip

    Maven坐标:org.elasticsearch:elasticsearch:6.3.0; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...

    elasticsearch-rest-client-6.8.3-API文档-中文版.zip

    Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.8.3; 标签:elasticsearch、client、rest、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...

    elasticsearch java api

    Elasticsearch Java API是开发Elasticsearch应用时常用的一个接口,它允许开发者使用Java语言与Elasticsearch集群进行交互。由于“隔壁的30分比较老,基本上都用不了”,这可能指的是早期版本的教程或API已经过时,...

    使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示

    在本文中,我们将深入探讨如何使用Java调用Elasticsearch(ES)提供的API进行数据搜索。Elasticsearch是一个流行的开源全文搜索引擎,具有分布式、实时、可扩展性等特性,广泛应用于大数据分析和日志检索等领域。...

    《从Lucene到Elasticsearch全文检索实战》第8章Elasticsearch Java API测试案例代码.zip

    《从Lucene到Elasticsearch全文检索实战》第8章Elasticsearch Java API测试案例代码

    Elasticsearch的javaapi使用.docx

    在使用Java API与Elasticsearch交互时,首先需要创建一个客户端实例,通常是通过`TransportClient`类来实现: ```java import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch....

Global site tag (gtag.js) - Google Analytics