Class SolrSearchService

  • All Implemented Interfaces:
    SearchService

    @DeclareRoles({"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
    @RolesAllowed({"org.imixs.ACCESSLEVEL.NOACCESS","org.imixs.ACCESSLEVEL.READERACCESS","org.imixs.ACCESSLEVEL.AUTHORACCESS","org.imixs.ACCESSLEVEL.EDITORACCESS","org.imixs.ACCESSLEVEL.MANAGERACCESS"})
    public class SolrSearchService
    extends Object
    implements SearchService
    This session ejb provides a service to search the solr index.

    Version:
    1.0
    Author:
    rsoika
    • Constructor Detail

      • SolrSearchService

        public SolrSearchService()
    • Method Detail

      • search

        public List<ItemCollection> search​(String _searchTerm,
                                           int pageSize,
                                           int pageIndex,
                                           SortOrder sortOrder,
                                           DefaultOperator defaultOperator,
                                           boolean loadStubs)
                                    throws QueryException
        Returns a collection of documents matching the provided search term. The term will be extended with the current users roles to test the read access level of each workitem matching the search term.

        The optional param 'searchOrder' can be set to force lucene to sort the search result by any search order.

        The optional param 'defaultOperator' can be set to Operator.AND

        The optional param 'stubs' indicates if the full Imixs Document should be loaded or if only the data fields stored in the lucedn index will be return. The later is the faster method but returns only document stubs.

        Specified by:
        search in interface SearchService
        Parameters:
        searchTerm -
        pageSize - - docs per page
        pageIndex - - page number
        sortOrder -
        defaultOperator - - optional to change the default search operator
        loadStubs - - optional indicates of only the lucene document should be returned.
        Returns:
        collection of search result
        Throws:
        QueryException - in case the searchtem is not understandable.
      • getTotalHits

        public int getTotalHits​(String _searchTerm,
                                int _maxResult,
                                DefaultOperator defaultOperator)
                         throws QueryException
        Returns the total hits for a given search term from the lucene index. The method did not load any data. The provided search term will we extended with a users roles to test the read access level of each workitem matching the search term.

        In Solr we can get the count if we the the query param 'row=0'. The the response contains still the numFound but not docs!

        Specified by:
        getTotalHits in interface SearchService
        Parameters:
        sSearchTerm -
        maxResult - - max search result
        Returns:
        total hits of search result
        Throws:
        QueryException - in case the searchterm is not understandable.
        See Also:
        search(String, int, int, Sort, Operator)
      • getTaxonomyByQuery

        public List<Category> getTaxonomyByQuery​(String searchTerm,
                                                 String... categories)
        Description copied from interface: SearchService
        Returns the total hits for a given set of categories from the lucene taxonomy index based on a search query. The method did not load any data.
        Specified by:
        getTaxonomyByQuery in interface SearchService
        Parameters:
        searchTerm - - a lucene search term
        categories - - a list of categories.
        Returns:
        total hits of search result
      • getTaxonomy

        public List<Category> getTaxonomy​(String... categories)
        Description copied from interface: SearchService
        Returns the total hits for a given set of categories from the lucene taxonomy index. The method did not load any data.
        Specified by:
        getTaxonomy in interface SearchService
        Parameters:
        categories - - a list of categories.
        Returns:
        total hits of search result
      • parseQueryResult

        protected List<ItemCollection> parseQueryResult​(String json)
        This method extracts the docs from a Solr JSON query result
        Parameters:
        json - - solr query response (JSON)
        Returns:
        List of ItemCollection objects