Class BaseElasticSearchIndexBuilder

  • All Implemented Interfaces:
    org.sakaiproject.search.api.SearchIndexBuilder, org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
    Direct Known Subclasses:
    SiteElasticSearchIndexBuilder

    public abstract class BaseElasticSearchIndexBuilder
    extends Object
    implements org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
    • Field Detail

      • DEFAULT_SUGGESTION_MATCHING_FIELD_NAME

        protected static final String DEFAULT_SUGGESTION_MATCHING_FIELD_NAME
        See Also:
        Constant Field Values
      • ADD_RESOURCE_VALIDATION_KEY_CONTENT_PRODUCER

        protected static final String ADD_RESOURCE_VALIDATION_KEY_CONTENT_PRODUCER
        See Also:
        Constant Field Values
      • ADD_RESOURCE_VALIDATION_KEY_INDEX_ACTION

        protected static final String ADD_RESOURCE_VALIDATION_KEY_INDEX_ACTION
        See Also:
        Constant Field Values
      • ADD_RESOURCE_VALIDATION_KEY_ENTITY_ID

        protected static final String ADD_RESOURCE_VALIDATION_KEY_ENTITY_ID
        See Also:
        Constant Field Values
      • DELETE_RESOURCE_KEY_ENTITY_REFERENCE

        protected static final String DELETE_RESOURCE_KEY_ENTITY_REFERENCE
        See Also:
        Constant Field Values
      • allowAllAdvisor

        protected static final org.sakaiproject.authz.api.SecurityAdvisor allowAllAdvisor
      • securityService

        protected org.sakaiproject.authz.api.SecurityService securityService
      • serverConfigurationService

        protected org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService
      • eventTrackingService

        protected org.sakaiproject.event.api.EventTrackingService eventTrackingService
      • client

        protected org.elasticsearch.client.RestHighLevelClient client
        ES Client, with access to any indexes in the cluster.
      • indexName

        protected String indexName
        the ES indexname
      • name

        protected String name
        Logical, well-known name, possibly distinct from the physical ES indexName
      • rebuildIndexOnStartup

        protected boolean rebuildIndexOnStartup
        set to true to force an index rebuild at startup time, defaults to false. This is probably something you never want to use, other than in development or testing
      • useSuggestions

        protected boolean useSuggestions
      • maxNumberOfSuggestions

        protected int maxNumberOfSuggestions
        max number of suggestions to return when looking for suggestions (this populates the autocomplete drop down in the UI)
      • suggestionMatchingFieldName

        protected String suggestionMatchingFieldName
      • suggestionResultFieldNames

        protected String[] suggestionResultFieldNames
      • searchResultFieldNames

        protected String[] searchResultFieldNames
      • filter

        protected org.sakaiproject.search.elasticsearch.filter.SearchItemFilter filter
      • useFacetting

        protected boolean useFacetting
      • facetName

        protected String facetName
      • facetTermSize

        protected int facetTermSize
        N most frequent terms
      • contentIndexBatchSize

        protected int contentIndexBatchSize
        Number of documents to index at a time for each run of the context indexing task (defaults to 500). Setting this too low will slow things down, setting it to high won't allow all nodes in the cluster to share the load.
      • bulkRequestSize

        protected int bulkRequestSize
        Number of actions to send in one elasticsearch bulk index call defaults to 10. Setting this to too high a number will have memory implications as you'll be keeping more content in memory until the request is executed.
      • delay

        protected int delay
        number seconds of wait after startup before starting the BulkContentIndexerTask (defaults to 3 minutes)
      • period

        protected int period
        how often the BulkContentIndexerTask runs in seconds (defaults to 1 minute)
      • startTime

        protected long startTime
      • lastLoad

        protected long lastLoad
      • testMode

        protected boolean testMode
        this turns off the threads and does indexing inline. DO NOT enable this in prod. It is meant for testing, especially unit tests only.
      • defaultMappingResource

        protected String defaultMappingResource
      • mappingConfig

        protected String mappingConfig
        by default the mapping in configured in the mapping.json file. This can be overridden by injecting json into this property. See {@link elasticsearch mapping reference } for more information on configuration that is available. For example, if you want to change the analyzer config for a particular field this is the place to do it.
      • defaultIndexSettingsResource

        protected String defaultIndexSettingsResource
      • indexSettingsConfig

        protected String indexSettingsConfig
        Expects a JSON string of ElasticSearch index settings. You can set this in your sakai.properties files and inject a value using the indexSettings@org.sakaiproject.search.api.SearchIndexBuilder property. By default this value is configured by the indexSettings.json files. See {@link elasticsearch index modules} for more information on configuration that is available.
      • indexSettings

        protected org.elasticsearch.common.settings.Settings indexSettings
      • indexedDocumentType

        protected String indexedDocumentType
      • backgroundScheduler

        protected Timer backgroundScheduler
        indexing thread that performs loading the actual content into the index.
      • producers

        protected Set<org.sakaiproject.search.api.EntityContentProducer> producers
      • triggerFunctions

        protected Set<String> triggerFunctions
      • eventRegistrar

        protected org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilderEventRegistrar eventRegistrar
    • Constructor Detail

      • BaseElasticSearchIndexBuilder

        public BaseElasticSearchIndexBuilder()
    • Method Detail

      • isEnabled

        public boolean isEnabled()
      • destroy

        public void destroy()
        Specified by:
        destroy in interface org.sakaiproject.search.api.SearchIndexBuilder
      • initialize

        public void initialize​(org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilderEventRegistrar eventRegistrar,
                               org.elasticsearch.client.RestHighLevelClient client)
        Specified by:
        initialize in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • beforeElasticSearchConfigInitialization

        protected abstract void beforeElasticSearchConfigInitialization()
        Gives subclasses a chance to initialize configuration prior to reading/processing any ES configs. May be important for setting up defaults, for example, or for ensuring subclass-specific configs are in place before any background tasks are in place. (Though the latter would be better factored into beforeBackgroundSchedulerInitialization()
      • requireConfiguration

        protected void requireConfiguration()
      • beforeBackgroundSchedulerInitialization

        protected abstract void beforeBackgroundSchedulerInitialization()
        Called after all ES config has been processed but before the background scheduler has been set up and before any index startup ops have been invoked (initializeIndex(). I.e. this is a subclass's last chance to set up any configs on which background jobs and/or index maintenance in general might depend.
      • initializeElasticSearchMapping

        protected String initializeElasticSearchMapping​(String injectedConfig)
      • initializeElasticSearchIndexSettings

        protected org.elasticsearch.common.settings.Settings initializeElasticSearchIndexSettings​(String injectedConfig)
      • initializeBackgroundScheduler

        protected Timer initializeBackgroundScheduler()
      • initializeContentQueueProcessingTask

        protected TimerTask initializeContentQueueProcessingTask()
      • newBulkContentIndexerTask

        protected TimerTask newBulkContentIndexerTask()
      • newRebuildIndexTask

        protected TimerTask newRebuildIndexTask()
      • processContentQueue

        protected void processContentQueue()
        Searches for any docs in the search index that have not been indexed yet, digests the content and loads it into the index. Any docs with empty content will be removed from the index.
      • processContentQueueEntry

        protected void processContentQueueEntry​(org.elasticsearch.search.SearchHit hit,
                                                org.elasticsearch.action.bulk.BulkRequest bulkRequest)
                                         throws NoContentException
        Throws:
        NoContentException
      • executeBulkRequest

        protected void executeBulkRequest​(org.elasticsearch.action.bulk.BulkRequest bulkRequest)
      • noContentProducerForContentQueueEntry

        protected void noContentProducerForContentQueueEntry​(org.elasticsearch.search.SearchHit hit,
                                                             String reference)
                                                      throws NoContentException
        Throws:
        NoContentException
      • findContentQueue

        protected org.elasticsearch.action.search.SearchResponse findContentQueue()
      • prepareFindContentQueue

        protected org.elasticsearch.action.search.SearchRequest prepareFindContentQueue()
      • addFindContentQueueRequestParams

        protected org.elasticsearch.action.search.SearchRequest addFindContentQueueRequestParams​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • completeFindContentQueueRequest

        protected abstract org.elasticsearch.action.search.SearchRequest completeFindContentQueueRequest​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • findContentQueueWithRequest

        protected org.elasticsearch.action.search.SearchResponse findContentQueueWithRequest​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • deleteDocument

        protected void deleteDocument​(org.elasticsearch.search.SearchHit searchHit)
      • deleteDocument

        protected void deleteDocument​(NoContentException noContentException)
      • deleteDocumentWithParams

        protected void deleteDocumentWithParams​(Map<String,​Object> deleteParams)
      • prepareDeleteDocument

        protected org.elasticsearch.action.delete.DeleteRequest prepareDeleteDocument​(Map<String,​Object> deleteParams)
      • completeDeleteRequest

        protected abstract org.elasticsearch.action.delete.DeleteRequest completeDeleteRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest,
                                                                                               Map<String,​Object> deleteParams)
      • deleteDocumentWithRequest

        protected org.elasticsearch.action.delete.DeleteResponse deleteDocumentWithRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest)
                                                                                    throws IOException
        Throws:
        IOException
      • extractDeleteDocumentParams

        protected Map<String,​Object> extractDeleteDocumentParams​(org.elasticsearch.search.SearchHit searchHit)
      • initializeIndex

        protected void initializeIndex()
      • assureIndex

        protected void assureIndex()
        creates a new index if one does not exist
      • createIndex

        protected void createIndex()
        creates a new index, does not check if the exist exists
      • recreateIndex

        protected void recreateIndex()
        removes any existing index and creates a new one
      • rebuildIndex

        public void rebuildIndex()
        Removes any existing index, creates a new index, and rebuilds the index from the entities own stored state
        Specified by:
        rebuildIndex in interface org.sakaiproject.search.api.SearchIndexBuilder
      • rebuildIndexImmediately

        protected abstract void rebuildIndexImmediately()
      • refreshIndex

        public void refreshIndex()
        refresh the index from the current stored state
        Specified by:
        refreshIndex in interface org.sakaiproject.search.api.SearchIndexBuilder
      • newIndexRequest

        protected org.elasticsearch.action.index.IndexRequest newIndexRequest​(String resourceName,
                                                                              org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                              boolean includeContent)
      • completeIndexRequest

        protected abstract org.elasticsearch.action.index.IndexRequest completeIndexRequest​(org.elasticsearch.action.index.IndexRequest indexRequest,
                                                                                            String resourceName,
                                                                                            org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                            boolean includeContent)
      • newIndexRequestContentSourceBuilder

        protected org.elasticsearch.xcontent.XContentBuilder newIndexRequestContentSourceBuilder​(String resourceName,
                                                                                                 org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                                 boolean includeContent)
                                                                                          throws IOException
        Throws:
        IOException
      • addFields

        protected abstract org.elasticsearch.xcontent.XContentBuilder addFields​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                                String resourceName,
                                                                                org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                boolean includeContent)
                                                                         throws IOException
        Throws:
        IOException
      • addCustomProperties

        protected org.elasticsearch.xcontent.XContentBuilder addCustomProperties​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                                 String resourceName,
                                                                                 org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                 boolean includeContent)
                                                                          throws IOException
        Throws:
        IOException
      • addContent

        protected org.elasticsearch.xcontent.XContentBuilder addContent​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                        String resourceName,
                                                                        org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                        boolean includeContent)
                                                                 throws NoContentException,
                                                                        IOException
        Throws:
        NoContentException
        IOException
      • noContentForIndexRequest

        protected abstract org.elasticsearch.xcontent.XContentBuilder noContentForIndexRequest​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                                               String resourceName,
                                                                                               org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                               boolean includeContent)
                                                                                        throws NoContentException
        Throws:
        NoContentException
      • completeIndexRequestContentSourceBuilder

        protected org.elasticsearch.xcontent.XContentBuilder completeIndexRequestContentSourceBuilder​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                                                      String resourceName,
                                                                                                      org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                                      boolean includeContent)
                                                                                               throws IOException
        Throws:
        IOException
      • prepareIndexAdd

        protected void prepareIndexAdd​(String resourceName,
                                       org.sakaiproject.search.api.EntityContentProducer ecp,
                                       boolean includeContent)
                                throws NoContentException
        Parameters:
        resourceName -
        ecp -
        Throws:
        NoContentException
      • indexAdd

        protected void indexAdd​(String resourceName,
                                org.sakaiproject.search.api.EntityContentProducer ecp)
        schedules content for indexing.
        Parameters:
        resourceName -
        ecp -
      • getPendingDocuments

        public int getPendingDocuments()
        Specified by:
        getPendingDocuments in interface org.sakaiproject.search.api.SearchIndexBuilder
      • isBuildQueueEmpty

        public boolean isBuildQueueEmpty()
        Specified by:
        isBuildQueueEmpty in interface org.sakaiproject.search.api.SearchIndexBuilder
      • addResource

        public void addResource​(org.sakaiproject.event.api.Notification notification,
                                org.sakaiproject.event.api.Event event)
        Specified by:
        addResource in interface org.sakaiproject.search.api.SearchIndexBuilder
      • dispatchValidatedAddResource

        protected void dispatchValidatedAddResource​(Map<String,​Object> validationContext)
      • extractCustomProperties

        protected Map<String,​Collection<String>> extractCustomProperties​(String resourceName,
                                                                               org.sakaiproject.search.api.EntityContentProducer contentProducer)
        Extract properties from the given EntityContentProducer

        The EntityContentProducer.getCustomProperties(String) method returns a map of different kind of elements. To avoid casting and calls to instanceof, extractCustomProperties does all the work and returns a formated map containing only Collection.

        Parameters:
        resourceName - affected resource
        contentProducer - producer providing properties for the given resource
        Returns:
        a formated map of Collection
      • search

        public org.elasticsearch.action.search.SearchResponse search​(String searchTerms,
                                                                     List<String> references,
                                                                     List<String> siteIds,
                                                                     int start,
                                                                     int end)
        Specified by:
        search in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • search

        public org.elasticsearch.action.search.SearchResponse search​(String searchTerms,
                                                                     List<String> references,
                                                                     List<String> siteIds,
                                                                     int start,
                                                                     int end,
                                                                     Map<String,​String> additionalSearchInformation)
        Specified by:
        search in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • prepareSearchRequest

        protected org.elasticsearch.action.search.SearchRequest prepareSearchRequest​(String searchTerms,
                                                                                     List<String> references,
                                                                                     List<String> siteIds,
                                                                                     int start,
                                                                                     int end)
      • newSearchRequestAndQueryBuilders

        protected org.elasticsearch.action.search.SearchRequest newSearchRequestAndQueryBuilders()
      • addSearchCoreParams

        protected void addSearchCoreParams​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • addSearchQuery

        protected void addSearchQuery​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                      String searchTerms,
                                      List<String> references,
                                      List<String> siteIds)
      • addSearchTerms

        protected void addSearchTerms​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                      String searchTerms)
      • addSearchReferences

        protected void addSearchReferences​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                           List<String> references)
      • addSearchSiteIds

        protected abstract void addSearchSiteIds​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                 List<String> siteIds)
      • addSearchResultFields

        protected void addSearchResultFields​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • addSearchPagination

        protected void addSearchPagination​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                           int start,
                                           int end)
      • addSearchFacetting

        protected void addSearchFacetting​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • completeSearchRequestBuilders

        protected abstract void completeSearchRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                              String searchTerms,
                                                              List<String> references,
                                                              List<String> siteIds)
      • searchSuggestions

        public String[] searchSuggestions​(String searchString,
                                          String currentSite,
                                          boolean allMySites)
        Specified by:
        searchSuggestions in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • prepareSearchSuggestionsRequest

        protected org.elasticsearch.action.search.SearchRequest prepareSearchSuggestionsRequest​(String searchString,
                                                                                                String currentSite,
                                                                                                boolean allMySites)
      • completeSearchSuggestionsRequestBuilders

        protected abstract void completeSearchSuggestionsRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                                         String searchString,
                                                                         String currentSite,
                                                                         boolean allMySites)
      • newSearchSuggestionsRequestAndQueryBuilders

        protected org.elasticsearch.action.search.SearchRequest newSearchSuggestionsRequestAndQueryBuilders​(String searchString)
      • addSearchSuggestionsCoreParams

        protected void addSearchSuggestionsCoreParams​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • addSearchSuggestionsQuery

        protected void addSearchSuggestionsQuery​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                 String searchString,
                                                 String currentSite,
                                                 boolean allMySites)
      • addSearchSuggestionsTerms

        protected abstract void addSearchSuggestionsTerms​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                          String searchString)
      • addSearchSuggestionsSites

        protected abstract void addSearchSuggestionsSites​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                          String currentSite,
                                                          boolean allMySites)
      • addSearchSuggestionResultFields

        protected void addSearchSuggestionResultFields​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • addSearchSuggestionsPagination

        protected void addSearchSuggestionsPagination​(org.elasticsearch.action.search.SearchRequest searchRequest)
      • getIndexHealth

        public org.elasticsearch.cluster.health.ClusterIndexHealth getIndexHealth()
      • getStatus

        public StringBuilder getStatus​(StringBuilder into)
        Specified by:
        getStatus in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • roundTwoDecimals

        protected double roundTwoDecimals​(double d)
      • getNDocs

        public long getNDocs()
        Specified by:
        getNDocs in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • getSearchStatus

        public org.sakaiproject.search.api.SearchStatus getSearchStatus()
        Specified by:
        getSearchStatus in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • newEntityContentProducer

        public org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(String ref)
        Find a EntityContentProducer capable of handling the given entity reference, or null if no such producer has been registered.
        Specified by:
        newEntityContentProducer in interface org.sakaiproject.search.api.SearchIndexBuilder
        Parameters:
        ref - the entity reference
      • newEntityContentProducer

        public org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(org.sakaiproject.event.api.Event event)
        Find a EntityContentProducer capable of handling the given Event, or null if no such producer has been registered.
        Specified by:
        newEntityContentProducer in interface org.sakaiproject.search.api.SearchIndexBuilder
        Parameters:
        event -
        Returns:
      • matchEntityContentProducer

        protected Optional<org.sakaiproject.search.api.EntityContentProducer> matchEntityContentProducer​(Predicate<org.sakaiproject.search.api.EntityContentProducer> matcher)
      • getContentProducers

        public List<org.sakaiproject.search.api.EntityContentProducer> getContentProducers()
        get all the producers registered, as a clone to avoid concurrent modification exceptions
        Specified by:
        getContentProducers in interface org.sakaiproject.search.api.SearchIndexBuilder
        Returns:
      • registerEntityContentProducer

        public void registerEntityContentProducer​(org.sakaiproject.search.api.EntityContentProducer ecp)
        register an entity content producer to provide content to the search engine
        Specified by:
        registerEntityContentProducer in interface org.sakaiproject.search.api.SearchIndexBuilder
      • getContentFunctions

        public Set<String> getContentFunctions()
        Specified by:
        getContentFunctions in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • enableAzgSecurityAdvisor

        protected void enableAzgSecurityAdvisor()
        Establish a security advisor to allow the "embedded" work to occur with no need for additional security permissions.
      • disableAzgSecurityAdvisor

        protected void disableAzgSecurityAdvisor()
        Disable the security advisor.
      • getFieldFromSearchHit

        public String getFieldFromSearchHit​(String field,
                                            org.elasticsearch.search.SearchHit hit)
        loads the field from the SearchHit. Loads from field not from source since we aren't storing the source.
        Specified by:
        getFieldFromSearchHit in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
        Parameters:
        field -
        hit -
        Returns:
      • pairOf

        protected <L,​R> org.apache.commons.lang3.tuple.Pair<L,​R> pairOf​(L left,
                                                                                    R right)
      • getAllSearchItems

        public List<org.sakaiproject.search.model.SearchBuilderItem> getAllSearchItems()
        Specified by:
        getAllSearchItems in interface org.sakaiproject.search.api.SearchIndexBuilder
      • setIndexedDocumentType

        public void setIndexedDocumentType​(String indexedDocumentType)
      • setTestMode

        public void setTestMode​(boolean testMode)
      • setRebuildIndexOnStartup

        public void setRebuildIndexOnStartup​(boolean rebuildIndexOnStartup)
      • getUseFacetting

        public boolean getUseFacetting()
        Specified by:
        getUseFacetting in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • setUseFacetting

        public void setUseFacetting​(boolean useFacetting)
      • setFacetName

        public void setFacetName​(String facetName)
      • setMaxNumberOfSuggestions

        public void setMaxNumberOfSuggestions​(int maxNumberOfSuggestions)
      • setUseSuggestions

        public void setUseSuggestions​(boolean useSuggestions)
      • setSuggestionResultFieldNames

        public void setSuggestionResultFieldNames​(String[] suggestionResultFieldNames)
      • setSuggestionMatchingFieldName

        public void setSuggestionMatchingFieldName​(String suggestionMatchingFieldName)
      • setSearchResultFieldNames

        public void setSearchResultFieldNames​(String[] searchResultFieldNames)
      • setFilter

        public void setFilter​(org.sakaiproject.search.elasticsearch.filter.SearchItemFilter filter)
      • getFilter

        public org.sakaiproject.search.elasticsearch.filter.SearchItemFilter getFilter()
        Specified by:
        getFilter in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • getFacetName

        public String getFacetName()
        Specified by:
        getFacetName in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • setFacetTermSize

        public void setFacetTermSize​(int facetTermSize)
      • getName

        public String getName()
        Specified by:
        getName in interface org.sakaiproject.search.api.SearchIndexBuilder
      • setName

        public void setName​(String name)
      • setIndexName

        public void setIndexName​(String indexName)
      • setDefaultIndexSettingsResource

        public void setDefaultIndexSettingsResource​(String defaultIndexSettingsResource)
      • setMappingConfig

        public void setMappingConfig​(String mappingConfig)
      • setIndexSettingsConfig

        public void setIndexSettingsConfig​(String indexSettingsConfig)
      • setDefaultMappingResource

        public void setDefaultMappingResource​(String defaultMappingResource)
      • setDelay

        public void setDelay​(int delay)
      • setPeriod

        public void setPeriod​(int period)
      • setContentIndexBatchSize

        public void setContentIndexBatchSize​(int contentIndexBatchSize)
      • setBulkRequestSize

        public void setBulkRequestSize​(int bulkRequestSize)
      • setSecurityService

        public void setSecurityService​(org.sakaiproject.authz.api.SecurityService securityService)
      • setServerConfigurationService

        public void setServerConfigurationService​(org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService)
      • setEventTrackingService

        public void setEventTrackingService​(org.sakaiproject.event.api.EventTrackingService eventTrackingService)
      • setTriggerFunctions

        public void setTriggerFunctions​(Collection<String> triggerFunctions)
      • getTriggerFunctions

        public Set<String> getTriggerFunctions()
        Specified by:
        getTriggerFunctions in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
      • getGlobalMasterSearchItems

        public List<org.sakaiproject.search.model.SearchBuilderItem> getGlobalMasterSearchItems()
        Specified by:
        getGlobalMasterSearchItems in interface org.sakaiproject.search.api.SearchIndexBuilder
      • getLog

        protected abstract org.slf4j.Logger getLog()