elasticarchjavaapi——客户端
lient接口
AdminClient下有两个方法:
1)cluster(),产生一个允许从集群中执行action或操作的client;
2)indices(),产生一个允许从索引中执行action或操作的client。
AdminClient接口有两个实现类,分别为
minClient和
alTransportAdminClient。
minClient类
NodeAdminClient有一个带有@Inject注解的构造器,并实现了接口AdminClient
的两个方法,如下所示:
[java]viewplaincopy
1.@Inject
NodeAdminClient(Settingsttings,NodeClusterAdmi
nClientclusterAdminClient,NodeIndicesAdminClientindice
sAdminClient){
(ttings);
sAdminClient=indicesAdminClient;
rAdminClient=clusterAdminClient;
6.}
7.
8.@Override
IndicesAdminClientindices(){
indicesAdminClient;
11.}
12.
13.@Override
ClusterAdminClientcluster(){
rAdminClient;
16.}
@Inject导致了一个直接的后果:你只能通过被@Inject标注的构造器生成实例。
indices()和cluster()覆盖了AdminClient的同名方法,分别返回
NodeIndicesAdminClient和NodeClusterAdminClient对象。
NodeAdminClient会继承父类
ctComponent的nodeName()方法用
以获取当前节点的名称。
alTransportAdminClient类
InternalTransportAdminClient其实与NodeAdminClient类似,只是它的indices()
和cluster()分别返回的是InternalTransportIndicesAdminClient和
InternalTransportClusterAdminClient。
NodeAdminClient和InternalTransportAdminClient均没有子类,所以只有当我们需
要用到NodeIndicesAdminClient、NodeClusterAdminClient、
InternalTransportIndicesAdminClient或InternalTransportClusterAdminClient时,
才考虑创建这两个类的实体。
接口
Client为从集群中执行action或operation提供了一站式接口,这里的所有操作都
是自然而然地异步执行的,每个action或operation都有两种风格,一种是简单地
返回一个Future,另一种是访问一个
Listener。你可以在启
动时取得一个Client,也可以使用ortClient
远程连接一个或多个节点。
Client有以下方法:
1)clo(),关闭客户端;
2)admin(),返回一个可以执行管理性操作的客户端;
3)两个execute,用于执行一般性操作,这里的一般性与上文提到的管理性相对;
4)prepareExecute,准备一个RequestBuilder对象,得到RequestBuilder对象后
再做执行操作,当然,在这之间,你可以做一些个性化设置;
5)index(IndexRequestrequest),根据给写的index和type索引一个JSON资源,
index和type由IndexRequest提供,IndexRequest也可提供id,若不提供时,id
将自动生成;
6)index(IndexRequestrequest,ActionListener
index(IndexRequestrequest)的区别在于它不会直接返回索引创建的结果,而是将
结果转给监听器,由listener来通知请求者;
7)prepareIndex()、prepareIndex(Stringindex,Stringtype)、prepareIndex(String
index,Stringtype,@NullableStringid),准备创建索引,但不创建索引;
8)update(UpdateRequestrequest),基于一个script更新文档,返回更新后的结果;
9)update(UpdateRequestrequest,ActionListener
更新,但不返回结果,而是交由监听器;
10)prepareUpdate()、prepareUpdate(Stringindex,Stringtype,Stringid),准备更
新,但不执行更新;
11)delete(DeleteRequestrequest)、delete(DeleteRequestrequest,
ActionListener
和id从索引中删除文档;
12)prepareDelete()、prepareDelete(Stringindex,Stringtype,Stringid),准备删除,
但不执行删除;
13)bulk(BulkRequestrequest)、bulk(BulkRequestrequest,
ActionListener
14)prepareBulk(),准备执行批量操作,但不执行;
15)deleteByQuery(DeleteByQueryRequestrequest)、
deleteByQuery(DeleteByQueryRequestrequest,
ActionListener
16)prepareDeleteByQuery(String...indices),准备删除,但不执行删除;
17)get(GetRequestrequest)、get(GetRequestrequest,
ActionListener
获取文档;
18)prepareGet()、prepareGet(Stringindex,@NullableStringtype,Stringid),准
备获取,但不执行获取;
19)multiGet(MultiGetRequestrequest)、multiGet(MultiGetRequestrequest,
ActionListener
20)prepareMultiGet(),准备批量获取,但不执行获取操作;
21)count(CountRequestrequest)、count(CountRequestrequest,
ActionListener
22)prepareCount(String...indices),准备获取适应特定query的文档数量,但不获
取;
23)arch(SearchRequestrequest)、arch(SearchRequestrequest,
ActionListener
id和type执行搜索;
24)prepareSearch(String...indices),准备但不搜索;
25)archScroll(SearchScrollRequestrequest)、
archScroll(SearchScrollRequestrequest,ActionListener
listener)、prepareSearchScroll(StringscrollId),通过用于迭代搜索结果;
26)multiSearch(MultiSearchRequestrequest)、multiSearch(MultiSearchRequest
request,ActionListener
执行多个搜索请求;
27)moreLikeThis(MoreLikeThisRequestrequest)、
moreLikeThis(MoreLikeThisRequestrequest,ActionListener
listener)、prepareMoreLikeThis(Stringindex,Stringtype,Stringid),类似于数据库
中的like操作,先根据index、type、id找到一个document,再找到跟这个文档like
的其他文档;
28)percolate(PercolateRequestrequest)、percolate(PercolateRequestrequest,
ActionListener
Stringtype),过滤一个请求,返回匹配的结果;
29)explain(ExplainRequestrequest)、explain(ExplainRequestrequest,
ActionListener
type,Stringid),为指定的请求计算一个score
本文发布于:2022-12-29 02:21:33,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/50512.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |