Class SiteElasticSearchIndexBuilder

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

    public class SiteElasticSearchIndexBuilder
    extends BaseElasticSearchIndexBuilder
    implements org.sakaiproject.search.api.SiteSearchIndexBuilder
    • Constructor Detail

      • SiteElasticSearchIndexBuilder

        public SiteElasticSearchIndexBuilder()
    • Method Detail

      • deleteDocument

        protected void deleteDocument​(String id,
                                      String siteId)
      • 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 BaseElasticSearchIndexBuilder
        Throws:
        IOException
      • rebuildSiteIndex

        protected void rebuildSiteIndex​(String siteId)
      • isSiteIndexable

        protected boolean isSiteIndexable​(org.sakaiproject.site.api.Site site)
        Check if a site is considered as indexable based on the current server configuration.

        Not indexable sites are:

        • Special sites
        • Sites without the search tool (if the option is enabled)
        • User sites (if the option is enabled)
        • Any sites included in the ignoreSitesList (~admin and !admin are the default ignored sites)

        Parameters:
        site - site which may be indexable
        Returns:
        true if the site can be index, false otherwise
      • getSiteMasterSearchItems

        public List<org.sakaiproject.search.model.SearchBuilderItem> getSiteMasterSearchItems()
        Specified by:
        getSiteMasterSearchItems in interface org.sakaiproject.search.api.SiteSearchIndexBuilder
      • rebuildIndex

        public void rebuildIndex​(String siteId)
        Rebuild the index from the entities own stored state , for just the supplied siteId
        Specified by:
        rebuildIndex in interface org.sakaiproject.search.api.SiteSearchIndexBuilder
      • deleteAllDocumentForSite

        protected void deleteAllDocumentForSite​(String siteId)
      • refreshIndex

        public void refreshIndex​(String siteId)
        Refresh the index for the supplied site. This simply refreshes the docs that ES already knows about. It does not create any new docs. If you want to reload all site content you need to do a {@see rebuildIndex()}
        Specified by:
        refreshIndex in interface org.sakaiproject.search.api.SiteSearchIndexBuilder
      • getResourceNames

        protected Collection<String> getResourceNames​(String siteId)
        Get all indexed resources for a site
        Parameters:
        siteId - Site containing indexed resources
        Returns:
        a collection of resource references or an empty collection if no resource was found
      • 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 BaseElasticSearchIndexBuilder
      • getAllUsersSites

        protected String[] getAllUsersSites​(String currentUser)
        Get all the sites a user has access to.
        Returns:
        An array of site IDs.
      • isOnlyIndexSearchToolSites

        public boolean isOnlyIndexSearchToolSites()
        Specified by:
        isOnlyIndexSearchToolSites in interface org.sakaiproject.search.api.SiteSearchIndexBuilder
        Returns:
        the onlyIndexSearchToolSites
      • setOnlyIndexSearchToolSites

        public void setOnlyIndexSearchToolSites​(boolean onlyIndexSearchToolSites)
        Parameters:
        onlyIndexSearchToolSites - the onlyIndexSearchToolSites to set
      • setExcludeUserSites

        public void setExcludeUserSites​(boolean excludeUserSites)
      • isExcludeUserSites

        public boolean isExcludeUserSites()
        Specified by:
        isExcludeUserSites in interface org.sakaiproject.search.api.SiteSearchIndexBuilder
      • setUseSiteFilters

        public void setUseSiteFilters​(boolean useSiteFilters)
      • setSiteService

        public void setSiteService​(org.sakaiproject.site.api.SiteService siteService)
      • setIgnoredSites

        public void setIgnoredSites​(String ignoredSites)
      • setIgnoredSitesList

        public void setIgnoredSitesList​(List<String> ignoredSitesList)
      • setUserDirectoryService

        public void setUserDirectoryService​(org.sakaiproject.user.api.UserDirectoryService userDirectoryService)
      • getEventResourceFilter

        public String getEventResourceFilter()
        Specified by:
        getEventResourceFilter in interface org.sakaiproject.search.elasticsearch.ElasticSearchIndexBuilder