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

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

/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License
 * 2.0 and the Server Side Public License, v 1; you may not use this file except
 * in compliance with, at your election, the Elastic License 2.0 or the Server
 * Side Public License, v 1.
 */

package org.elasticsearch.client.internal;

import org.elasticsearch.action.ActionFuture;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.explain.ExplainRequest;
import org.elasticsearch.action.explain.ExplainRequestBuilder;
import org.elasticsearch.action.explain.ExplainResponse;
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesRequest;
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesRequestBuilder;
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesResponse;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetRequestBuilder;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetRequest;
import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollRequestBuilder;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.MultiSearchRequest;
import org.elasticsearch.action.search.MultiSearchRequestBuilder;
import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequest;
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
import org.elasticsearch.action.termvectors.MultiTermVectorsRequest;
import org.elasticsearch.action.termvectors.MultiTermVectorsRequestBuilder;
import org.elasticsearch.action.termvectors.MultiTermVectorsResponse;
import org.elasticsearch.action.termvectors.TermVectorsRequest;
import org.elasticsearch.action.termvectors.TermVectorsRequestBuilder;
import org.elasticsearch.action.termvectors.TermVectorsResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateRequestBuilder;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Setting.Property;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.core.Releasable;

import java.util.Map;

/**
 * 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 be retrieved from a started {@link org.elasticsearch.node.Node}. * * @see org.elasticsearch.node.Node#client() */ public interface Client extends ElasticsearchClient, Releasable { Setting CLIENT_TYPE_SETTING_S = new Setting<>("client.type", "node", (s) -> { return switch (s) { case "node", "transport" -> s; default -> throw new IllegalArgumentException("Can't parse [client.type] must be one of [node, transport]"); }; }, Property.NodeScope); /** * The admin client that can be used to perform administrative operations. */ AdminClient admin(); /** * Index a JSON source associated with a given index. *

* 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. *

* 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. *

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

* The id is optional, if it is not provided, one will be generated automatically. * * @param index The index to index the document to */ IndexRequestBuilder prepareIndex(String index); /** * 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 id); /** * Deletes a document from the index based on the index 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 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 and id. */ DeleteRequestBuilder prepareDelete(); /** * Deletes a document from the index based on the index and id. * * @param index The index to delete the document from * @param id The id of the document to delete */ DeleteRequestBuilder prepareDelete(String index, String id); /** * Executes a bulk of index / delete operations. * * @param request The bulk request * @return The result future * @see org.elasticsearch.client.internal.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.internal.Requests#bulkRequest() */ void bulk(BulkRequest request, ActionListener listener); /** * Executes a bulk of index / delete operations. */ BulkRequestBuilder prepareBulk(); /** * Executes a bulk of index / delete operations with default index */ BulkRequestBuilder prepareBulk(@Nullable String globalIndex); /** * Gets the document that was indexed from an index with an 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 an 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 an id. */ GetRequestBuilder prepareGet(); /** * Gets the document that was indexed from an index with an id. */ GetRequestBuilder prepareGet(String index, String id); /** * Multi get documents. */ ActionFuture multiGet(MultiGetRequest request); /** * Multi get documents. */ void multiGet(MultiGetRequest request, ActionListener listener); /** * Multi get documents. */ MultiGetRequestBuilder prepareMultiGet(); /** * Search across one or more indices 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 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 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(); /** * An action that returns the term vectors for a specific document. * * @param request The term vector request * @return The response future */ ActionFuture termVectors(TermVectorsRequest request); /** * An action that returns the term vectors for a specific document. * * @param request The term vector request */ void termVectors(TermVectorsRequest request, ActionListener listener); /** * Builder for the term vector request. */ TermVectorsRequestBuilder prepareTermVectors(); /** * Builder for the term vector request. * * @param index The index to load the document from * @param id The id of the document */ TermVectorsRequestBuilder prepareTermVectors(String index, String id); /** * Multi get term vectors. */ ActionFuture multiTermVectors(MultiTermVectorsRequest request); /** * Multi get term vectors. */ void multiTermVectors(MultiTermVectorsRequest request, ActionListener listener); /** * Multi get term vectors. */ MultiTermVectorsRequestBuilder prepareMultiTermVectors(); /** * Computes a score explanation for the specified request. * * @param index The index this explain is targeted for * @param id The document identifier this explain is targeted for */ ExplainRequestBuilder prepareExplain(String index, 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); /** * Clears the search contexts associated with specified scroll ids. */ ClearScrollRequestBuilder prepareClearScroll(); /** * Clears the search contexts associated with specified scroll ids. */ ActionFuture clearScroll(ClearScrollRequest request); /** * Clears the search contexts associated with specified scroll ids. */ void clearScroll(ClearScrollRequest request, ActionListener listener); /** * Builder for the field capabilities request. */ FieldCapabilitiesRequestBuilder prepareFieldCaps(String... indices); /** * An action that returns the field capabilities from the provided request */ ActionFuture fieldCaps(FieldCapabilitiesRequest request); /** * An action that returns the field capabilities from the provided request */ void fieldCaps(FieldCapabilitiesRequest request, ActionListener listener); /** * Returns this clients settings */ Settings settings(); /** * Returns a new lightweight Client that applies all given headers to each of the requests * issued from it. */ Client filterWithHeader(Map headers); /** * Returns a client to a remote cluster with the given cluster alias. * * @throws IllegalArgumentException if the given clusterAlias doesn't exist * @throws UnsupportedOperationException if this functionality is not available on this client. */ default Client getRemoteClusterClient(String clusterAlias) { throw new UnsupportedOperationException("this client doesn't support remote cluster connections"); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy