Class PermissionAwareSearchService

  • All Implemented Interfaces:
    org.craftercms.search.elasticsearch.client.ElasticsearchClientWrapper

    public class PermissionAwareSearchService
    extends org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper
    Implementation of ElasticsearchWrapper specific for authoring indexes
    Author:
    joseross
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper

        org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.RequestUpdates, org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.SearchRequestWrapper
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String indexSuffix
      The suffix to append to the site name
      protected String pathFieldName
      The name of the field to filter paths
      • Fields inherited from class org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper

        client, filterQueries, logger, PARAM_NAME_INDEX, PARAM_NAME_SEARCH_TYPE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addFilters​(co.elastic.clients.elasticsearch.core.SearchRequest request, List<String> allowedPaths, org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.RequestUpdates updates)  
      protected org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.RequestUpdates getRequestUpdates​(co.elastic.clients.elasticsearch.core.SearchRequest request, Map<String,​Object> parameters)  
      <T> co.elastic.clients.elasticsearch.core.SearchResponse<T> search​(co.elastic.clients.elasticsearch.core.SearchRequest request, Class<T> docClass, Map<String,​Object> parameters)
      <T> co.elastic.clients.elasticsearch.core.SearchResponse<T> search​(String siteId, List<String> allowedPaths, co.elastic.clients.elasticsearch.core.SearchRequest request, Class<T> documentClass)
      Perform a search operation for the given site
      • Methods inherited from class org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper

        copyQuery, setFilterQueries, updateIndex, updateIndicesOptions, updateQuery, updateSearchType
      • Methods inherited from interface org.craftercms.search.elasticsearch.client.ElasticsearchClientWrapper

        search, search, search
    • Field Detail

      • indexSuffix

        protected String indexSuffix
        The suffix to append to the site name
      • pathFieldName

        protected String pathFieldName
        The name of the field to filter paths
    • Constructor Detail

      • PermissionAwareSearchService

        @ConstructorProperties({"client","indexSuffix","pathFieldName"})
        public PermissionAwareSearchService​(co.elastic.clients.elasticsearch.ElasticsearchClient client,
                                            String indexSuffix,
                                            String pathFieldName)
    • Method Detail

      • search

        public <T> co.elastic.clients.elasticsearch.core.SearchResponse<T> search​(String siteId,
                                                                                  List<String> allowedPaths,
                                                                                  co.elastic.clients.elasticsearch.core.SearchRequest request,
                                                                                  Class<T> documentClass)
                                                                           throws IOException
        Perform a search operation for the given site
        Parameters:
        siteId - the site id
        allowedPaths - the paths that should be included in the results
        request - the search request
        Returns:
        the search response
        Throws:
        IOException
      • getRequestUpdates

        protected org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.RequestUpdates getRequestUpdates​(co.elastic.clients.elasticsearch.core.SearchRequest request,
                                                                                                                                      Map<String,​Object> parameters)
        Overrides:
        getRequestUpdates in class org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper
      • addFilters

        protected void addFilters​(co.elastic.clients.elasticsearch.core.SearchRequest request,
                                  List<String> allowedPaths,
                                  org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper.RequestUpdates updates)
      • search

        public <T> co.elastic.clients.elasticsearch.core.SearchResponse<T> search​(co.elastic.clients.elasticsearch.core.SearchRequest request,
                                                                                  Class<T> docClass,
                                                                                  Map<String,​Object> parameters)
                                                                           throws IOException
        Specified by:
        search in interface org.craftercms.search.elasticsearch.client.ElasticsearchClientWrapper
        Overrides:
        search in class org.craftercms.search.elasticsearch.impl.client.AbstractElasticsearchClientWrapper
        Throws:
        IOException