All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.elasticsearch.client.Client Maven / Gradle / Ivy

There is a newer version: 8.14.1
Show newest version
/*
 * Licensed to ElasticSearch and Shay Banon under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. ElasticSearch licenses this
 * file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.elasticsearch.client;

import org.elasticsearch.action.*;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.count.CountRequest;
import org.elasticsearch.action.count.CountRequestBuilder;
import org.elasticsearch.action.count.CountResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.deletebyquery.DeleteByQueryRequest;
import org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder;
import org.elasticsearch.action.deletebyquery.DeleteByQueryResponse;
import org.elasticsearch.action.explain.ExplainRequest;
import org.elasticsearch.action.explain.ExplainRequestBuilder;
import org.elasticsearch.action.explain.ExplainResponse;
import org.elasticsearch.action.get.*;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.mlt.MoreLikeThisRequest;
import org.elasticsearch.action.mlt.MoreLikeThisRequestBuilder;
import org.elasticsearch.action.percolate.PercolateRequest;
import org.elasticsearch.action.percolate.PercolateRequestBuilder;
import org.elasticsearch.action.percolate.PercolateResponse;
import org.elasticsearch.action.search.*;
import org.elasticsearch.action.suggest.SuggestRequest;
import org.elasticsearch.action.suggest.SuggestRequestBuilder;
import org.elasticsearch.action.suggest.SuggestResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateRequestBuilder;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.common.Nullable;

/**
 * A client provides a one stop interface for performing actions/operations against the cluster.
 * 

*

All operations performed are asynchronous by nature. Each action/operation has two flavors, the first * simply returns an {@link org.elasticsearch.action.ActionFuture}, while the second accepts an * {@link org.elasticsearch.action.ActionListener}. *

*

A client can either be retrieved from a {@link org.elasticsearch.node.Node} started, or connected remotely * to one or more nodes using {@link org.elasticsearch.client.transport.TransportClient}. * * @see org.elasticsearch.node.Node#client() * @see org.elasticsearch.client.transport.TransportClient */ public interface Client { /** * Closes the client. */ void close(); /** * The admin client that can be used to perform administrative operations. */ AdminClient admin(); /** * Executes a generic action, denoted by an {@link Action}. * * @param action The action type to execute. * @param request The action request. * @param Teh request type. * @param the response type. * @param The request builder type. * @return A future allowing to get back the response. */ > ActionFuture execute(final Action action, final Request request); /** * Executes a generic action, denoted by an {@link Action}. * * @param action The action type to execute. * @param request Teh action request. * @param listener The listener to receive the response back. * @param The request type. * @param The response type. * @param The request builder type. */ > void execute(final Action action, final Request request, ActionListener listener); /** * Prepares a request builder to execute, specified by {@link Action}. * * @param action The action type to execute. * @param The request type. * @param The response type. * @param The request builder. * @return The request builder, that can, at a later stage, execute the request. */ > RequestBuilder prepareExecute(final Action action); /** * Index a JSON source associated with a given index and type. *

*

The id is optional, if it is not provided, one will be generated automatically. * * @param request The index request * @return The result future * @see Requests#indexRequest(String) */ ActionFuture index(IndexRequest request); /** * Index a document associated with a given index and type. *

*

The id is optional, if it is not provided, one will be generated automatically. * * @param request The index request * @param listener A listener to be notified with a result * @see Requests#indexRequest(String) */ void index(IndexRequest request, ActionListener listener); /** * Index a document associated with a given index and type. *

*

The id is optional, if it is not provided, one will be generated automatically. */ IndexRequestBuilder prepareIndex(); /** * Updates a document based on a script. * * @param request The update request * @return The result future */ ActionFuture update(UpdateRequest request); /** * Updates a document based on a script. * * @param request The update request * @param listener A listener to be notified with a result */ void update(UpdateRequest request, ActionListener listener); /** * Updates a document based on a script. */ UpdateRequestBuilder prepareUpdate(); /** * Updates a document based on a script. */ UpdateRequestBuilder prepareUpdate(String index, String type, String id); /** * Index a document associated with a given index and type. *

*

The id is optional, if it is not provided, one will be generated automatically. * * @param index The index to index the document to * @param type The type to index the document to */ IndexRequestBuilder prepareIndex(String index, String type); /** * Index a document associated with a given index and type. *

*

The id is optional, if it is not provided, one will be generated automatically. * * @param index The index to index the document to * @param type The type to index the document to * @param id The id of the document */ IndexRequestBuilder prepareIndex(String index, String type, @Nullable String id); /** * Deletes a document from the index based on the index, type and id. * * @param request The delete request * @return The result future * @see Requests#deleteRequest(String) */ ActionFuture delete(DeleteRequest request); /** * Deletes a document from the index based on the index, type and id. * * @param request The delete request * @param listener A listener to be notified with a result * @see Requests#deleteRequest(String) */ void delete(DeleteRequest request, ActionListener listener); /** * Deletes a document from the index based on the index, type and id. */ DeleteRequestBuilder prepareDelete(); /** * Deletes a document from the index based on the index, type and id. * * @param index The index to delete the document from * @param type The type of the document to delete * @param id The id of the document to delete */ DeleteRequestBuilder prepareDelete(String index, String type, String id); /** * Executes a bulk of index / delete operations. * * @param request The bulk request * @return The result future * @see org.elasticsearch.client.Requests#bulkRequest() */ ActionFuture bulk(BulkRequest request); /** * Executes a bulk of index / delete operations. * * @param request The bulk request * @param listener A listener to be notified with a result * @see org.elasticsearch.client.Requests#bulkRequest() */ void bulk(BulkRequest request, ActionListener listener); /** * Executes a bulk of index / delete operations. */ BulkRequestBuilder prepareBulk(); /** * Deletes all documents from one or more indices based on a query. * * @param request The delete by query request * @return The result future * @see Requests#deleteByQueryRequest(String...) */ ActionFuture deleteByQuery(DeleteByQueryRequest request); /** * Deletes all documents from one or more indices based on a query. * * @param request The delete by query request * @param listener A listener to be notified with a result * @see Requests#deleteByQueryRequest(String...) */ void deleteByQuery(DeleteByQueryRequest request, ActionListener listener); /** * Deletes all documents from one or more indices based on a query. */ DeleteByQueryRequestBuilder prepareDeleteByQuery(String... indices); /** * Gets the document that was indexed from an index with a type and id. * * @param request The get request * @return The result future * @see Requests#getRequest(String) */ ActionFuture get(GetRequest request); /** * Gets the document that was indexed from an index with a type and id. * * @param request The get request * @param listener A listener to be notified with a result * @see Requests#getRequest(String) */ void get(GetRequest request, ActionListener listener); /** * Gets the document that was indexed from an index with a type and id. */ GetRequestBuilder prepareGet(); /** * Gets the document that was indexed from an index with a type (optional) and id. */ GetRequestBuilder prepareGet(String index, @Nullable String type, String id); /** * Multi get documents. */ ActionFuture multiGet(MultiGetRequest request); /** * Multi get documents. */ void multiGet(MultiGetRequest request, ActionListener listener); /** * Multi get documents. */ MultiGetRequestBuilder prepareMultiGet(); /** * A count of all the documents matching a specific query. * * @param request The count request * @return The result future * @see Requests#countRequest(String...) */ ActionFuture count(CountRequest request); /** * A count of all the documents matching a specific query. * * @param request The count request * @param listener A listener to be notified of the result * @see Requests#countRequest(String...) */ void count(CountRequest request, ActionListener listener); /** * A count of all the documents matching a specific query. */ CountRequestBuilder prepareCount(String... indices); /** * Suggestion matching a specific phrase. * * @param request The suggest request * @return The result future * @see Requests#suggestRequest(String...) */ ActionFuture suggest(SuggestRequest request); /** * Suggestions matching a specific phrase. * * @param request The suggest request * @param listener A listener to be notified of the result * @see Requests#suggestRequest(String...) */ void suggest(SuggestRequest request, ActionListener listener); /** * Suggestions matching a specific phrase. */ SuggestRequestBuilder prepareSuggest(String... indices); /** * Search across one or more indices and one or more types with a query. * * @param request The search request * @return The result future * @see Requests#searchRequest(String...) */ ActionFuture search(SearchRequest request); /** * Search across one or more indices and one or more types with a query. * * @param request The search request * @param listener A listener to be notified of the result * @see Requests#searchRequest(String...) */ void search(SearchRequest request, ActionListener listener); /** * Search across one or more indices and one or more types with a query. */ SearchRequestBuilder prepareSearch(String... indices); /** * A search scroll request to continue searching a previous scrollable search request. * * @param request The search scroll request * @return The result future * @see Requests#searchScrollRequest(String) */ ActionFuture searchScroll(SearchScrollRequest request); /** * A search scroll request to continue searching a previous scrollable search request. * * @param request The search scroll request * @param listener A listener to be notified of the result * @see Requests#searchScrollRequest(String) */ void searchScroll(SearchScrollRequest request, ActionListener listener); /** * A search scroll request to continue searching a previous scrollable search request. */ SearchScrollRequestBuilder prepareSearchScroll(String scrollId); /** * Performs multiple search requests. */ ActionFuture multiSearch(MultiSearchRequest request); /** * Performs multiple search requests. */ void multiSearch(MultiSearchRequest request, ActionListener listener); /** * Performs multiple search requests. */ MultiSearchRequestBuilder prepareMultiSearch(); /** * A more like this action to search for documents that are "like" a specific document. * * @param request The more like this request * @return The response future */ ActionFuture moreLikeThis(MoreLikeThisRequest request); /** * A more like this action to search for documents that are "like" a specific document. * * @param request The more like this request * @param listener A listener to be notified of the result */ void moreLikeThis(MoreLikeThisRequest request, ActionListener listener); /** * A more like this action to search for documents that are "like" a specific document. * * @param index The index to load the document from * @param type The type of the document * @param id The id of the document */ MoreLikeThisRequestBuilder prepareMoreLikeThis(String index, String type, String id); /** * Percolates a request returning the matches documents. */ ActionFuture percolate(PercolateRequest request); /** * Percolates a request returning the matches documents. */ void percolate(PercolateRequest request, ActionListener listener); /** * Percolates a request returning the matches documents. * * @param index The index to percolate the doc * @param type The type of the doc */ PercolateRequestBuilder preparePercolate(String index, String type); /** * Computes a score explanation for the specified request. * * @param index The index this explain is targeted for * @param type The type this explain is targeted for * @param id The document identifier this explain is targeted for */ ExplainRequestBuilder prepareExplain(String index, String type, String id); /** * Computes a score explanation for the specified request. * * @param request The request encapsulating the query and document identifier to compute a score explanation for */ ActionFuture explain(ExplainRequest request); /** * Computes a score explanation for the specified request. * * @param request The request encapsulating the query and document identifier to compute a score explanation for * @param listener A listener to be notified of the result */ void explain(ExplainRequest request, ActionListener listener); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy