Class SearchEngineClient

  • All Implemented Interfaces:
    Closeable, AutoCloseable, org.codelibs.fesen.client.Client, org.codelibs.fesen.client.FesenClient, org.codelibs.fesen.common.lease.Releasable

    public class SearchEngineClient
    extends Object
    implements org.codelibs.fesen.client.Client
    • Field Detail

      • runner

        protected org.codelibs.fesen.runner.FesenRunner runner
      • client

        protected org.codelibs.fesen.client.Client client
      • indexConfigPath

        protected String indexConfigPath
      • indexConfigList

        protected List<String> indexConfigList
      • scrollForSearch

        protected String scrollForSearch
      • sizeForDelete

        protected int sizeForDelete
      • scrollForDelete

        protected String scrollForDelete
      • sizeForUpdate

        protected int sizeForUpdate
      • scrollForUpdate

        protected String scrollForUpdate
      • maxConfigSyncStatusRetry

        protected int maxConfigSyncStatusRetry
      • maxEsStatusRetry

        protected int maxEsStatusRetry
      • clusterName

        protected String clusterName
    • Constructor Detail

      • SearchEngineClient

        public SearchEngineClient()
    • Method Detail

      • addIndexConfig

        public void addIndexConfig​(String path)
      • addConfigFile

        public void addConfigFile​(String index,
                                  String path)
      • setSettings

        public void setSettings​(Map<String,​String> settings)
      • getStatus

        public String getStatus()
      • setRunner

        public void setRunner​(org.codelibs.fesen.runner.FesenRunner runner)
      • isEmbedded

        public boolean isEmbedded()
      • open

        @PostConstruct
        public void open()
      • createHttpClient

        protected org.codelibs.fesen.client.Client createHttpClient​(FessConfig fessConfig,
                                                                    String host)
      • existsIndex

        public boolean existsIndex​(String indexName)
      • reindex

        public boolean reindex​(String fromIndex,
                               String toIndex,
                               boolean waitForCompletion)
      • createIndex

        public boolean createIndex​(String index,
                                   String indexName)
      • createIndex

        public boolean createIndex​(String index,
                                   String indexName,
                                   String numberOfShards,
                                   String autoExpandReplicas,
                                   boolean uploadConfig)
      • readIndexSetting

        protected String readIndexSetting​(String fesenType,
                                          String indexConfigFile,
                                          String numberOfShards,
                                          String autoExpandReplicas)
      • addMapping

        public void addMapping​(String index,
                               String docType,
                               String indexName)
      • updateAlias

        public boolean updateAlias​(String newIndex)
      • createAlias

        protected void createAlias​(String index,
                                   String createdIndexName)
      • sendConfigFiles

        protected void sendConfigFiles​(String index)
      • generateNewIndexName

        protected String generateNewIndexName​(String configIndex)
      • insertBulkData

        protected void insertBulkData​(FessConfig fessConfig,
                                      String configIndex,
                                      String dataPath)
      • waitForYellowStatus

        protected void waitForYellowStatus​(FessConfig fessConfig)
      • waitForConfigSyncStatus

        protected void waitForConfigSyncStatus()
      • close

        @PreDestroy
        public void close()
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Specified by:
        close in interface org.codelibs.fesen.common.lease.Releasable
      • updateByQuery

        public long updateByQuery​(String index,
                                  Function<org.codelibs.fesen.action.search.SearchRequestBuilder,​org.codelibs.fesen.action.search.SearchRequestBuilder> option,
                                  BiFunction<org.codelibs.fesen.action.update.UpdateRequestBuilder,​org.codelibs.fesen.search.SearchHit,​org.codelibs.fesen.action.update.UpdateRequestBuilder> builder)
      • deleteByQuery

        public long deleteByQuery​(String index,
                                  org.codelibs.fesen.index.query.QueryBuilder queryBuilder)
      • deleteScrollContext

        protected void deleteScrollContext​(String scrollId)
      • refresh

        public void refresh​(String... indices)
      • flush

        public void flush​(String... indices)
      • store

        public boolean store​(String index,
                             Object obj)
      • delete

        public boolean delete​(String index,
                              String id)
      • setIndexConfigPath

        public void setIndexConfigPath​(String indexConfigPath)
      • setClusterName

        public void setClusterName​(String clusterName)
      • threadPool

        public org.codelibs.fesen.threadpool.ThreadPool threadPool()
        Specified by:
        threadPool in interface org.codelibs.fesen.client.FesenClient
      • admin

        public org.codelibs.fesen.client.AdminClient admin()
        Specified by:
        admin in interface org.codelibs.fesen.client.Client
      • index

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.index.IndexResponse> index​(org.codelibs.fesen.action.index.IndexRequest request)
        Specified by:
        index in interface org.codelibs.fesen.client.Client
      • index

        public void index​(org.codelibs.fesen.action.index.IndexRequest request,
                          org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.index.IndexResponse> listener)
        Specified by:
        index in interface org.codelibs.fesen.client.Client
      • prepareIndex

        public org.codelibs.fesen.action.index.IndexRequestBuilder prepareIndex()
        Specified by:
        prepareIndex in interface org.codelibs.fesen.client.Client
      • update

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.update.UpdateResponse> update​(org.codelibs.fesen.action.update.UpdateRequest request)
        Specified by:
        update in interface org.codelibs.fesen.client.Client
      • update

        public void update​(org.codelibs.fesen.action.update.UpdateRequest request,
                           org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.update.UpdateResponse> listener)
        Specified by:
        update in interface org.codelibs.fesen.client.Client
      • prepareUpdate

        public org.codelibs.fesen.action.update.UpdateRequestBuilder prepareUpdate()
        Specified by:
        prepareUpdate in interface org.codelibs.fesen.client.Client
      • prepareUpdate

        public org.codelibs.fesen.action.update.UpdateRequestBuilder prepareUpdate​(String index,
                                                                                   String type,
                                                                                   String id)
        Specified by:
        prepareUpdate in interface org.codelibs.fesen.client.Client
      • prepareIndex

        public org.codelibs.fesen.action.index.IndexRequestBuilder prepareIndex​(String index,
                                                                                String type)
        Specified by:
        prepareIndex in interface org.codelibs.fesen.client.Client
      • prepareIndex

        public org.codelibs.fesen.action.index.IndexRequestBuilder prepareIndex​(String index,
                                                                                String type,
                                                                                String id)
        Specified by:
        prepareIndex in interface org.codelibs.fesen.client.Client
      • delete

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.delete.DeleteResponse> delete​(org.codelibs.fesen.action.delete.DeleteRequest request)
        Specified by:
        delete in interface org.codelibs.fesen.client.Client
      • delete

        public void delete​(org.codelibs.fesen.action.delete.DeleteRequest request,
                           org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.delete.DeleteResponse> listener)
        Specified by:
        delete in interface org.codelibs.fesen.client.Client
      • prepareDelete

        public org.codelibs.fesen.action.delete.DeleteRequestBuilder prepareDelete()
        Specified by:
        prepareDelete in interface org.codelibs.fesen.client.Client
      • prepareDelete

        public org.codelibs.fesen.action.delete.DeleteRequestBuilder prepareDelete​(String index,
                                                                                   String type,
                                                                                   String id)
        Specified by:
        prepareDelete in interface org.codelibs.fesen.client.Client
      • bulk

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.bulk.BulkResponse> bulk​(org.codelibs.fesen.action.bulk.BulkRequest request)
        Specified by:
        bulk in interface org.codelibs.fesen.client.Client
      • bulk

        public void bulk​(org.codelibs.fesen.action.bulk.BulkRequest request,
                         org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.bulk.BulkResponse> listener)
        Specified by:
        bulk in interface org.codelibs.fesen.client.Client
      • prepareBulk

        public org.codelibs.fesen.action.bulk.BulkRequestBuilder prepareBulk()
        Specified by:
        prepareBulk in interface org.codelibs.fesen.client.Client
      • get

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.get.GetResponse> get​(org.codelibs.fesen.action.get.GetRequest request)
        Specified by:
        get in interface org.codelibs.fesen.client.Client
      • get

        public void get​(org.codelibs.fesen.action.get.GetRequest request,
                        org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.get.GetResponse> listener)
        Specified by:
        get in interface org.codelibs.fesen.client.Client
      • prepareGet

        public org.codelibs.fesen.action.get.GetRequestBuilder prepareGet()
        Specified by:
        prepareGet in interface org.codelibs.fesen.client.Client
      • prepareGet

        public org.codelibs.fesen.action.get.GetRequestBuilder prepareGet​(String index,
                                                                          String type,
                                                                          String id)
        Specified by:
        prepareGet in interface org.codelibs.fesen.client.Client
      • multiGet

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.get.MultiGetResponse> multiGet​(org.codelibs.fesen.action.get.MultiGetRequest request)
        Specified by:
        multiGet in interface org.codelibs.fesen.client.Client
      • multiGet

        public void multiGet​(org.codelibs.fesen.action.get.MultiGetRequest request,
                             org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.get.MultiGetResponse> listener)
        Specified by:
        multiGet in interface org.codelibs.fesen.client.Client
      • prepareMultiGet

        public org.codelibs.fesen.action.get.MultiGetRequestBuilder prepareMultiGet()
        Specified by:
        prepareMultiGet in interface org.codelibs.fesen.client.Client
      • search

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.search.SearchResponse> search​(org.codelibs.fesen.action.search.SearchRequest request)
        Specified by:
        search in interface org.codelibs.fesen.client.Client
      • search

        public void search​(org.codelibs.fesen.action.search.SearchRequest request,
                           org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.search.SearchResponse> listener)
        Specified by:
        search in interface org.codelibs.fesen.client.Client
      • prepareSearch

        public org.codelibs.fesen.action.search.SearchRequestBuilder prepareSearch​(String... indices)
        Specified by:
        prepareSearch in interface org.codelibs.fesen.client.Client
      • searchScroll

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.search.SearchResponse> searchScroll​(org.codelibs.fesen.action.search.SearchScrollRequest request)
        Specified by:
        searchScroll in interface org.codelibs.fesen.client.Client
      • searchScroll

        public void searchScroll​(org.codelibs.fesen.action.search.SearchScrollRequest request,
                                 org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.search.SearchResponse> listener)
        Specified by:
        searchScroll in interface org.codelibs.fesen.client.Client
      • prepareSearchScroll

        public org.codelibs.fesen.action.search.SearchScrollRequestBuilder prepareSearchScroll​(String scrollId)
        Specified by:
        prepareSearchScroll in interface org.codelibs.fesen.client.Client
      • multiSearch

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.search.MultiSearchResponse> multiSearch​(org.codelibs.fesen.action.search.MultiSearchRequest request)
        Specified by:
        multiSearch in interface org.codelibs.fesen.client.Client
      • multiSearch

        public void multiSearch​(org.codelibs.fesen.action.search.MultiSearchRequest request,
                                org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.search.MultiSearchResponse> listener)
        Specified by:
        multiSearch in interface org.codelibs.fesen.client.Client
      • prepareMultiSearch

        public org.codelibs.fesen.action.search.MultiSearchRequestBuilder prepareMultiSearch()
        Specified by:
        prepareMultiSearch in interface org.codelibs.fesen.client.Client
      • prepareExplain

        public org.codelibs.fesen.action.explain.ExplainRequestBuilder prepareExplain​(String index,
                                                                                      String type,
                                                                                      String id)
        Specified by:
        prepareExplain in interface org.codelibs.fesen.client.Client
      • explain

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.explain.ExplainResponse> explain​(org.codelibs.fesen.action.explain.ExplainRequest request)
        Specified by:
        explain in interface org.codelibs.fesen.client.Client
      • explain

        public void explain​(org.codelibs.fesen.action.explain.ExplainRequest request,
                            org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.explain.ExplainResponse> listener)
        Specified by:
        explain in interface org.codelibs.fesen.client.Client
      • prepareClearScroll

        public org.codelibs.fesen.action.search.ClearScrollRequestBuilder prepareClearScroll()
        Specified by:
        prepareClearScroll in interface org.codelibs.fesen.client.Client
      • clearScroll

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.search.ClearScrollResponse> clearScroll​(org.codelibs.fesen.action.search.ClearScrollRequest request)
        Specified by:
        clearScroll in interface org.codelibs.fesen.client.Client
      • clearScroll

        public void clearScroll​(org.codelibs.fesen.action.search.ClearScrollRequest request,
                                org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.search.ClearScrollResponse> listener)
        Specified by:
        clearScroll in interface org.codelibs.fesen.client.Client
      • settings

        public org.codelibs.fesen.common.settings.Settings settings()
        Specified by:
        settings in interface org.codelibs.fesen.client.Client
      • termVectors

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.termvectors.TermVectorsResponse> termVectors​(org.codelibs.fesen.action.termvectors.TermVectorsRequest request)
        Specified by:
        termVectors in interface org.codelibs.fesen.client.Client
      • termVectors

        public void termVectors​(org.codelibs.fesen.action.termvectors.TermVectorsRequest request,
                                org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.termvectors.TermVectorsResponse> listener)
        Specified by:
        termVectors in interface org.codelibs.fesen.client.Client
      • prepareTermVectors

        public org.codelibs.fesen.action.termvectors.TermVectorsRequestBuilder prepareTermVectors()
        Specified by:
        prepareTermVectors in interface org.codelibs.fesen.client.Client
      • prepareTermVectors

        public org.codelibs.fesen.action.termvectors.TermVectorsRequestBuilder prepareTermVectors​(String index,
                                                                                                  String type,
                                                                                                  String id)
        Specified by:
        prepareTermVectors in interface org.codelibs.fesen.client.Client
      • multiTermVectors

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.termvectors.MultiTermVectorsResponse> multiTermVectors​(org.codelibs.fesen.action.termvectors.MultiTermVectorsRequest request)
        Specified by:
        multiTermVectors in interface org.codelibs.fesen.client.Client
      • multiTermVectors

        public void multiTermVectors​(org.codelibs.fesen.action.termvectors.MultiTermVectorsRequest request,
                                     org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.termvectors.MultiTermVectorsResponse> listener)
        Specified by:
        multiTermVectors in interface org.codelibs.fesen.client.Client
      • prepareMultiTermVectors

        public org.codelibs.fesen.action.termvectors.MultiTermVectorsRequestBuilder prepareMultiTermVectors()
        Specified by:
        prepareMultiTermVectors in interface org.codelibs.fesen.client.Client
      • setSizeForUpdate

        public void setSizeForUpdate​(int sizeForUpdate)
      • setScrollForUpdate

        public void setScrollForUpdate​(String scrollForUpdate)
      • setSizeForDelete

        public void setSizeForDelete​(int sizeForDelete)
      • setScrollForDelete

        public void setScrollForDelete​(String scrollForDelete)
      • setScrollForSearch

        public void setScrollForSearch​(String scrollForSearch)
      • setMaxConfigSyncStatusRetry

        public void setMaxConfigSyncStatusRetry​(int maxConfigSyncStatusRetry)
      • setMaxEsStatusRetry

        public void setMaxEsStatusRetry​(int maxEsStatusRetry)
      • filterWithHeader

        public org.codelibs.fesen.client.Client filterWithHeader​(Map<String,​String> headers)
        Specified by:
        filterWithHeader in interface org.codelibs.fesen.client.Client
      • execute

        public <Request extends org.codelibs.fesen.action.ActionRequest,​Response extends org.codelibs.fesen.action.ActionResponse> org.codelibs.fesen.action.ActionFuture<Response> execute​(org.codelibs.fesen.action.ActionType<Response> action,
                                                                                                                                                                                                  Request request)
        Specified by:
        execute in interface org.codelibs.fesen.client.FesenClient
      • execute

        public <Request extends org.codelibs.fesen.action.ActionRequest,​Response extends org.codelibs.fesen.action.ActionResponse> void execute​(org.codelibs.fesen.action.ActionType<Response> action,
                                                                                                                                                      Request request,
                                                                                                                                                      org.codelibs.fesen.action.ActionListener<Response> listener)
        Specified by:
        execute in interface org.codelibs.fesen.client.FesenClient
      • prepareFieldCaps

        public org.codelibs.fesen.action.fieldcaps.FieldCapabilitiesRequestBuilder prepareFieldCaps​(String... indices)
        Specified by:
        prepareFieldCaps in interface org.codelibs.fesen.client.Client
      • fieldCaps

        public org.codelibs.fesen.action.ActionFuture<org.codelibs.fesen.action.fieldcaps.FieldCapabilitiesResponse> fieldCaps​(org.codelibs.fesen.action.fieldcaps.FieldCapabilitiesRequest request)
        Specified by:
        fieldCaps in interface org.codelibs.fesen.client.Client
      • fieldCaps

        public void fieldCaps​(org.codelibs.fesen.action.fieldcaps.FieldCapabilitiesRequest request,
                              org.codelibs.fesen.action.ActionListener<org.codelibs.fesen.action.fieldcaps.FieldCapabilitiesResponse> listener)
        Specified by:
        fieldCaps in interface org.codelibs.fesen.client.Client
      • prepareBulk

        public org.codelibs.fesen.action.bulk.BulkRequestBuilder prepareBulk​(String globalIndex,
                                                                             String globalType)
        Specified by:
        prepareBulk in interface org.codelibs.fesen.client.Client