Class QuestionElasticSearchIndexBuilder

  • All Implemented Interfaces:
    org.sakaiproject.search.api.SearchIndexBuilder, org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder

    public class QuestionElasticSearchIndexBuilder
    extends org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  QuestionElasticSearchIndexBuilder.RebuildSiteTask  
      • Nested classes/interfaces inherited from class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder

        org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder.BulkContentIndexerTask, org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder.IndexAction, org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder.NoOpTask, org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder.RebuildIndexTask
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static String ADD_RESOURCE_VALIDATION_KEY_ITEM  
      protected static String AGGREGATION_NAME  
      protected static String AGGREGATION_TOP_HITS  
      protected static String DELETE_RESOURCE_KEY_ITEM  
      protected static String SAKAI_DOC_TYPE  
      protected String[] searchResultFieldNames  
      protected boolean useAggregation
      We will use aggregations to retrun only one item from all the items with the same hash.
      protected boolean useFacetting  
      protected boolean useSuggestions
      set to true to force an index rebuild at startup time, defaults to false.
      • Fields inherited from class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder

        ADD_RESOURCE_VALIDATION_KEY_CONTENT_PRODUCER, ADD_RESOURCE_VALIDATION_KEY_ENTITY_ID, ADD_RESOURCE_VALIDATION_KEY_INDEX_ACTION, ADD_RESOURCE_VALIDATION_KEY_RESOURCE_NAME, allowAllAdvisor, backgroundScheduler, bulkRequestSize, client, contentIndexBatchSize, DEFAULT_FACET_NAME, DEFAULT_SUGGESTION_MATCHING_FIELD_NAME, defaultIndexSettingsResource, defaultMappingResource, delay, DELETE_RESOURCE_KEY_DOCUMENT_ID, DELETE_RESOURCE_KEY_ENTITY_REFERENCE, eventRegistrar, eventTrackingService, facetName, facetTermSize, filter, indexedDocumentType, indexName, indexSettings, indexSettingsConfig, lastLoad, mapping, mappingConfig, maxNumberOfSuggestions, name, period, producers, rebuildIndexOnStartup, securityService, serverConfigurationService, startTime, suggestionMatchingFieldName, suggestionResultFieldNames, testMode, triggerFunctions
      • Fields inherited from interface org.sakaiproject.search.api.SearchIndexBuilder

        DEFAULT_INDEX_BUILDER_NAME, DEFAULT_INDEX_NAME
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.elasticsearch.xcontent.XContentBuilder addCustomProperties​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder, String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected org.elasticsearch.xcontent.XContentBuilder addFields​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder, String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected org.elasticsearch.action.search.SearchRequest addFindContentQueueRequestParams​(org.elasticsearch.action.search.SearchRequest searchRequest)  
      protected void addSearchAggregation​(org.elasticsearch.action.search.SearchRequest searchRequest, String field)  
      protected void addSearchCoreParams​(org.elasticsearch.action.search.SearchRequest searchRequest)  
      protected void addSearchFacetting​(org.elasticsearch.action.search.SearchRequest searchRequest)  
      protected void addSearchPagination​(org.elasticsearch.action.search.SearchRequest searchRequest, int start, int end)  
      protected void addSearchQuery​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchTerms, List<String> references, List<String> siteIds)  
      protected void addSearchQuery​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchTerms, List<String> references, List<String> siteIds, Map<String,​String> additionalSearchInformation)  
      protected void addSearchReferences​(org.elasticsearch.action.search.SearchRequest searchRequest, List<String> references)  
      protected void addSearchResultFields​(org.elasticsearch.action.search.SearchRequest searchRequest)  
      protected void addSearchSiteIds​(org.elasticsearch.action.search.SearchRequest searchRequest, List<String> siteIds)  
      protected void addSearchSuggestionsSites​(org.elasticsearch.action.search.SearchRequest searchRequest, String currentSite, boolean allMySites)  
      protected void addSearchSuggestionsTerms​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchString)  
      protected void addSearchTerms​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchTerms)  
      protected void addSearchTerms​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchTerms, Map<String,​String> additionalSearchInformation)
      Here we create our specific search query with the parameters that are sent in the additionalSearchInformation
      protected 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 (BaseElasticSearchIndexBuilder.initializeIndex().
      protected void beforeElasticSearchConfigInitialization()
      Gives subclasses a chance to initialize configuration prior to reading/processing any ES configs.
      protected void completeAddResourceEventValidations​(org.sakaiproject.event.api.Event event, Map<String,​Object> validationContext)  
      protected org.elasticsearch.action.delete.DeleteRequest completeDeleteRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest, Map<String,​Object> deleteParams)  
      protected org.elasticsearch.action.search.SearchRequest completeFindContentQueueRequest​(org.elasticsearch.action.search.SearchRequest searchRequest)  
      protected org.elasticsearch.action.index.IndexRequest completeIndexRequest​(org.elasticsearch.action.index.IndexRequest indexRequest, String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected org.elasticsearch.xcontent.XContentBuilder completeIndexRequestContentSourceBuilder​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder, String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected void completeSearchRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchTerms, List<String> references, List<String> siteIds)  
      protected void completeSearchSuggestionsRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest, String searchString, String currentSite, boolean allMySites)  
      protected void deleteAllDocumentForQuestionPool​(String qpId)  
      void deleteAllDocumentForSiteIfDeleted​(String siteId)  
      protected void deleteDocument​(String id)  
      protected void deleteDocumentWithParams​(Map<String,​Object> deleteParams)  
      protected org.elasticsearch.action.delete.DeleteResponse deleteDocumentWithRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest)  
      protected void dispatchValidatedAddResource​(Map<String,​Object> validationContext)  
      protected Map<String,​Object> extractDeleteDocumentParams​(Map<String,​Object> validationContext)  
      protected Map<String,​Object> extractDeleteDocumentParams​(org.elasticsearch.search.SearchHit searchHit)  
      protected Map<String,​Object> extractDeleteDocumentParams​(org.sakaiproject.search.elasticsearch.NoContentException noContentException)  
      String getEventResourceFilter()  
      protected org.slf4j.Logger getLog()  
      protected void indexAdd​(String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp)
      schedules content for indexing.
      protected boolean isSiteIndexable​(org.sakaiproject.site.api.Site site)  
      org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(String ref)  
      org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(org.sakaiproject.event.api.Event event)  
      protected org.elasticsearch.action.search.SearchRequest newSearchRequestAndQueryBuilders​(String searchTerms, List<String> references, List<String> siteIds)  
      protected org.elasticsearch.xcontent.XContentBuilder noContentForIndexRequest​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder, String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected org.elasticsearch.action.delete.DeleteRequest prepareDeleteDocument​(Map<String,​Object> deleteParams)  
      protected void prepareIndexAdd​(String resourceName, org.sakaiproject.search.api.EntityContentProducer ecp, boolean includeContent)  
      protected org.elasticsearch.action.search.SearchRequest prepareSearchRequest​(String searchTerms, List<String> references, List<String> siteIds, int start, int end)  
      protected org.elasticsearch.action.search.SearchRequest prepareSearchRequest​(String searchTerms, List<String> references, List<String> siteIds, int start, int end, Map<String,​String> additionalSearchInformation)  
      protected void processContentQueue()  
      protected void processContentQueueEntry​(org.elasticsearch.search.SearchHit hit, org.elasticsearch.action.bulk.BulkRequest bulkRequest)  
      void rebuildIndex​(String siteId)  
      protected void rebuildIndexImmediately()  
      protected void rebuildQuestionPoolIndex​(String qpId)  
      protected void rebuildSiteIndex​(String siteId)  
      org.elasticsearch.action.search.SearchResponse search​(String searchTerms, List<String> references, List<String> siteIds, int start, int end)  
      org.elasticsearch.action.search.SearchResponse search​(String searchTerms, List<String> references, List<String> siteIds, int start, int end, Map<String,​String> additionalSearchInformation)
      This is a new search that accepts additionalSearchInformation.
      protected void validateIndexable​(org.sakaiproject.event.api.Event event, Map<String,​Object> validationContext)  
      protected void validateIndexAction​(org.sakaiproject.event.api.Event event, Map<String,​Object> validationContext)  
      protected void validateResourceName​(org.sakaiproject.event.api.Event event, Map<String,​Object> validationContext)  
      • Methods inherited from class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder

        addContent, addResource, addSearchSuggestionResultFields, addSearchSuggestionsCoreParams, addSearchSuggestionsPagination, addSearchSuggestionsQuery, assureIndex, buildIndexRequestContentSource, createIndex, deleteDocument, deleteDocument, destroy, disableAzgSecurityAdvisor, enableAzgSecurityAdvisor, executeBulkRequest, extractCustomProperties, findContentQueue, findContentQueueWithRequest, getAllSearchItems, getContentFunctions, getContentProducers, getFacetName, getFieldFromSearchHit, getFilter, getGlobalMasterSearchItems, getIndexHealth, getIndices, getName, getNDocs, getPendingDocuments, getSearchStatus, getStatus, getTriggerFunctions, getUseFacetting, initialize, initializeBackgroundScheduler, initializeContentQueueProcessingTask, initializeElasticSearchIndexSettings, initializeElasticSearchMapping, initializeIndex, isBuildQueueEmpty, isEnabled, isSupportedIndexAction, matchEntityContentProducer, newBulkContentIndexerTask, newIndexRequest, newIndexRequestContentSourceBuilder, newRebuildIndexTask, newSearchRequestAndQueryBuilders, newSearchSuggestionsRequestAndQueryBuilders, noContentProducerForContentQueueEntry, pairOf, prepareFindContentQueue, prepareIndex, prepareSearchSuggestionsRequest, rebuildIndex, recreateIndex, refreshIndex, registerEntityContentProducer, requireConfiguration, roundTwoDecimals, searchSuggestions, setBulkRequestSize, setContentIndexBatchSize, setDefaultIndexSettingsResource, setDefaultMappingResource, setDelay, setEventTrackingService, setFacetName, setFacetTermSize, setFilter, setIndexedDocumentType, setIndexName, setIndexSettingsConfig, setMappingConfig, setMaxNumberOfSuggestions, setName, setPeriod, setRebuildIndexOnStartup, setSearchResultFieldNames, setSecurityService, setServerConfigurationService, setSuggestionMatchingFieldName, setSuggestionResultFieldNames, setTestMode, setTriggerFunctions, setUseFacetting, setUseSuggestions, validateAddResourceEvent, validateContentProducer, validateServiceEnabled
    • Field Detail

      • searchResultFieldNames

        protected String[] searchResultFieldNames
      • useSuggestions

        protected boolean useSuggestions
        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
      • useFacetting

        protected boolean useFacetting
      • useAggregation

        protected boolean useAggregation
        We will use aggregations to retrun only one item from all the items with the same hash.
    • Constructor Detail

      • QuestionElasticSearchIndexBuilder

        public QuestionElasticSearchIndexBuilder()
    • Method Detail

      • beforeElasticSearchConfigInitialization

        protected 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()
        Specified by:
        beforeElasticSearchConfigInitialization in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • beforeBackgroundSchedulerInitialization

        protected 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 (BaseElasticSearchIndexBuilder.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.
        Specified by:
        beforeBackgroundSchedulerInitialization in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • completeFindContentQueueRequest

        protected org.elasticsearch.action.search.SearchRequest completeFindContentQueueRequest​(org.elasticsearch.action.search.SearchRequest searchRequest)
        Specified by:
        completeFindContentQueueRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • completeDeleteRequest

        protected org.elasticsearch.action.delete.DeleteRequest completeDeleteRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest,
                                                                                      Map<String,​Object> deleteParams)
        Specified by:
        completeDeleteRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • rebuildIndex

        public void rebuildIndex​(String siteId)
      • rebuildIndexImmediately

        protected void rebuildIndexImmediately()
        Specified by:
        rebuildIndexImmediately in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • isSiteIndexable

        protected boolean isSiteIndexable​(org.sakaiproject.site.api.Site site)
      • rebuildQuestionPoolIndex

        protected void rebuildQuestionPoolIndex​(String qpId)
      • rebuildSiteIndex

        protected void rebuildSiteIndex​(String siteId)
      • deleteAllDocumentForSiteIfDeleted

        public void deleteAllDocumentForSiteIfDeleted​(String siteId)
      • deleteAllDocumentForQuestionPool

        protected void deleteAllDocumentForQuestionPool​(String qpId)
      • deleteDocument

        protected void deleteDocument​(String id)
      • completeIndexRequest

        protected org.elasticsearch.action.index.IndexRequest completeIndexRequest​(org.elasticsearch.action.index.IndexRequest indexRequest,
                                                                                   String resourceName,
                                                                                   org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                   boolean includeContent)
        Specified by:
        completeIndexRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • newEntityContentProducer

        public org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(String ref)
        Specified by:
        newEntityContentProducer in interface org.sakaiproject.search.api.SearchIndexBuilder
        Overrides:
        newEntityContentProducer in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • newEntityContentProducer

        public org.sakaiproject.search.api.EntityContentProducer newEntityContentProducer​(org.sakaiproject.event.api.Event event)
        Specified by:
        newEntityContentProducer in interface org.sakaiproject.search.api.SearchIndexBuilder
        Overrides:
        newEntityContentProducer in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addFields

        protected org.elasticsearch.xcontent.XContentBuilder addFields​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                       String resourceName,
                                                                       org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                       boolean includeContent)
                                                                throws IOException
        Specified by:
        addFields in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        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
        Overrides:
        addCustomProperties in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Throws:
        IOException
      • noContentForIndexRequest

        protected org.elasticsearch.xcontent.XContentBuilder noContentForIndexRequest​(org.elasticsearch.xcontent.XContentBuilder contentSourceBuilder,
                                                                                      String resourceName,
                                                                                      org.sakaiproject.search.api.EntityContentProducer ecp,
                                                                                      boolean includeContent)
                                                                               throws org.sakaiproject.search.elasticsearch.NoContentException
        Specified by:
        noContentForIndexRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Throws:
        org.sakaiproject.search.elasticsearch.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
        Overrides:
        completeIndexRequestContentSourceBuilder in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Throws:
        IOException
      • prepareDeleteDocument

        protected org.elasticsearch.action.delete.DeleteRequest prepareDeleteDocument​(Map<String,​Object> deleteParams)
        Overrides:
        prepareDeleteDocument in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • extractDeleteDocumentParams

        protected Map<String,​Object> extractDeleteDocumentParams​(Map<String,​Object> validationContext)
        Overrides:
        extractDeleteDocumentParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • extractDeleteDocumentParams

        protected Map<String,​Object> extractDeleteDocumentParams​(org.sakaiproject.search.elasticsearch.NoContentException noContentException)
        Overrides:
        extractDeleteDocumentParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • extractDeleteDocumentParams

        protected Map<String,​Object> extractDeleteDocumentParams​(org.elasticsearch.search.SearchHit searchHit)
        Overrides:
        extractDeleteDocumentParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • deleteDocumentWithRequest

        protected org.elasticsearch.action.delete.DeleteResponse deleteDocumentWithRequest​(org.elasticsearch.action.delete.DeleteRequest deleteRequest)
                                                                                    throws IOException
        Overrides:
        deleteDocumentWithRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Throws:
        IOException
      • dispatchValidatedAddResource

        protected void dispatchValidatedAddResource​(Map<String,​Object> validationContext)
        Overrides:
        dispatchValidatedAddResource in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • deleteDocumentWithParams

        protected void deleteDocumentWithParams​(Map<String,​Object> deleteParams)
        Overrides:
        deleteDocumentWithParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • processContentQueue

        protected void processContentQueue()
        Overrides:
        processContentQueue in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addFindContentQueueRequestParams

        protected org.elasticsearch.action.search.SearchRequest addFindContentQueueRequestParams​(org.elasticsearch.action.search.SearchRequest searchRequest)
        Overrides:
        addFindContentQueueRequestParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • processContentQueueEntry

        protected void processContentQueueEntry​(org.elasticsearch.search.SearchHit hit,
                                                org.elasticsearch.action.bulk.BulkRequest bulkRequest)
                                         throws org.sakaiproject.search.elasticsearch.NoContentException
        Overrides:
        processContentQueueEntry in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Throws:
        org.sakaiproject.search.elasticsearch.NoContentException
      • prepareIndexAdd

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

        protected void indexAdd​(String resourceName,
                                org.sakaiproject.search.api.EntityContentProducer ecp)
        schedules content for indexing.
        Overrides:
        indexAdd in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
        Parameters:
        resourceName -
        ecp -
      • 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
        Overrides:
        search in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • search

        public org.elasticsearch.action.search.SearchResponse search​(String searchTerms,
                                                                     List<String> references,
                                                                     List<String> siteIds,
                                                                     int start,
                                                                     int end,
                                                                     Map<String,​String> additionalSearchInformation)
        This is a new search that accepts additionalSearchInformation. We need it for our complex question searches. We have duplicated the methods that need this parameter, like prepareSearchRequest
        Specified by:
        search in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder
        Overrides:
        search in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • prepareSearchRequest

        protected org.elasticsearch.action.search.SearchRequest prepareSearchRequest​(String searchTerms,
                                                                                     List<String> references,
                                                                                     List<String> siteIds,
                                                                                     int start,
                                                                                     int end)
        Overrides:
        prepareSearchRequest in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • prepareSearchRequest

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

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

        protected void addSearchCoreParams​(org.elasticsearch.action.search.SearchRequest searchRequest)
        Overrides:
        addSearchCoreParams in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchQuery

        protected void addSearchQuery​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                      String searchTerms,
                                      List<String> references,
                                      List<String> siteIds)
        Overrides:
        addSearchQuery in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchQuery

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

        protected void addSearchTerms​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                      String searchTerms)
        Overrides:
        addSearchTerms in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchTerms

        protected void addSearchTerms​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                      String searchTerms,
                                      Map<String,​String> additionalSearchInformation)
        Here we create our specific search query with the parameters that are sent in the additionalSearchInformation
      • addSearchReferences

        protected void addSearchReferences​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                           List<String> references)
        Overrides:
        addSearchReferences in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchSiteIds

        protected void addSearchSiteIds​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                        List<String> siteIds)
        Specified by:
        addSearchSiteIds in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchResultFields

        protected void addSearchResultFields​(org.elasticsearch.action.search.SearchRequest searchRequest)
        Overrides:
        addSearchResultFields in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchPagination

        protected void addSearchPagination​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                           int start,
                                           int end)
        Overrides:
        addSearchPagination in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchFacetting

        protected void addSearchFacetting​(org.elasticsearch.action.search.SearchRequest searchRequest)
        Overrides:
        addSearchFacetting in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchAggregation

        protected void addSearchAggregation​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                            String field)
      • completeSearchRequestBuilders

        protected void completeSearchRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                     String searchTerms,
                                                     List<String> references,
                                                     List<String> siteIds)
        Specified by:
        completeSearchRequestBuilders in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • completeSearchSuggestionsRequestBuilders

        protected void completeSearchSuggestionsRequestBuilders​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                                String searchString,
                                                                String currentSite,
                                                                boolean allMySites)
        Specified by:
        completeSearchSuggestionsRequestBuilders in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchSuggestionsTerms

        protected void addSearchSuggestionsTerms​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                 String searchString)
        Specified by:
        addSearchSuggestionsTerms in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • addSearchSuggestionsSites

        protected void addSearchSuggestionsSites​(org.elasticsearch.action.search.SearchRequest searchRequest,
                                                 String currentSite,
                                                 boolean allMySites)
        Specified by:
        addSearchSuggestionsSites in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder
      • getEventResourceFilter

        public String getEventResourceFilter()
      • getLog

        protected org.slf4j.Logger getLog()
        Specified by:
        getLog in class org.sakaiproject.search.elasticsearch.BaseElasticSearchIndexBuilder