Class CacheQueryImpl<E>

  • All Implemented Interfaces:
    Iterable<E>, CacheQuery<E>
    Direct Known Subclasses:
    ClusteredCacheQueryImpl

    public class CacheQueryImpl<E>
    extends Object
    implements CacheQuery<E>
    Implementation class of the CacheQuery interface.

    Author:
    Navin Surtani, Sanne Grinovero <sanne@hibernate.org> (C) 2011 Red Hat Inc., Marko Luksa
    • Constructor Detail

      • CacheQueryImpl

        public CacheQueryImpl​(org.apache.lucene.search.Query luceneQuery,
                              org.hibernate.search.spi.SearchIntegrator searchFactory,
                              AdvancedCache<?,​?> cache,
                              KeyTransformationHandler keyTransformationHandler,
                              org.hibernate.search.query.engine.spi.TimeoutExceptionFactory timeoutExceptionFactory,
                              Class<?>... classes)
        Create a CacheQueryImpl based on a Lucene query.
      • CacheQueryImpl

        public CacheQueryImpl​(org.hibernate.search.query.engine.spi.HSQuery hSearchQuery,
                              AdvancedCache<?,​?> cache,
                              KeyTransformationHandler keyTransformationHandler)
        Create a CacheQueryImpl based on a HSQuery.
    • Method Detail

      • filter

        public CacheQuery<E> filter​(org.apache.lucene.search.Filter filter)
        Takes in a lucene filter and sets it to the filter field in the class.
        Specified by:
        filter in interface CacheQuery<E>
        Parameters:
        filter - - lucene filter
      • getResultSize

        public int getResultSize()
        Description copied from interface: CacheQuery
        Gets the total number of results matching the query, ignoring pagination (firstResult, maxResult).
        Specified by:
        getResultSize in interface CacheQuery<E>
        Returns:
        The result size of the query.
      • sort

        public CacheQuery<E> sort​(org.apache.lucene.search.Sort sort)
        Description copied from interface: CacheQuery
        Allows lucene to sort the results. Integers are sorted in descending order.
        Specified by:
        sort in interface CacheQuery<E>
        Parameters:
        sort - - lucene sort object
      • enableFullTextFilter

        public org.hibernate.search.filter.FullTextFilter enableFullTextFilter​(String name)
        Enable a given filter by its name.
        Specified by:
        enableFullTextFilter in interface CacheQuery<E>
        Parameters:
        name - of filter.
        Returns:
        a FullTextFilter object.
      • firstResult

        public CacheQuery<E> firstResult​(int firstResult)
        Sets the the result of the given integer value to the first result.
        Specified by:
        firstResult in interface CacheQuery<E>
        Parameters:
        firstResult - index to be set.
        Throws:
        IllegalArgumentException - if the index given is less than zero.
      • maxResults

        public CacheQuery<E> maxResults​(int maxResults)
        Description copied from interface: CacheQuery
        Sets the maximum number of results to the number passed in as a parameter.
        Specified by:
        maxResults in interface CacheQuery<E>
        Parameters:
        maxResults - that are to be set to the maxResults.
      • iterator

        public ResultIterator<E> iterator​(FetchOptions fetchOptions)
                                   throws org.hibernate.search.exception.SearchException
        Description copied from interface: CacheQuery
        Returns the results of a search as a ResultIterator. Warning: the return type is an extension of Iterator which introduces a ResultIterator.close() method. This close method needs to be invoked when the iteration is complete to avoid resource leakage.
        Specified by:
        iterator in interface CacheQuery<E>
        Parameters:
        fetchOptions - how to fetch results (see @link FetchOptions)
        Returns:
        a QueryResultIterator which can be used to iterate through the results that were found.
        Throws:
        org.hibernate.search.exception.SearchException
      • list

        public List<E> list()
                     throws org.hibernate.search.exception.SearchException
        Description copied from interface: CacheQuery
        Returns the results of a search as a list.
        Specified by:
        list in interface CacheQuery<E>
        Returns:
        list of objects that were found from the search.
        Throws:
        org.hibernate.search.exception.SearchException
      • getFacetManager

        public org.hibernate.search.query.engine.spi.FacetManager getFacetManager()
        Specified by:
        getFacetManager in interface CacheQuery<E>
        Returns:
        return the manager for all faceting related operations
      • explain

        public org.apache.lucene.search.Explanation explain​(int documentId)
        Description copied from interface: CacheQuery
        Return the Lucene Explanation object describing the score computation for the matching object/document in the current query
        Specified by:
        explain in interface CacheQuery<E>
        Parameters:
        documentId - Lucene Document id to be explain. This is NOT the object key
        Returns:
        Lucene Explanation
      • projection

        public CacheQuery<Object[]> projection​(String... fields)
        Description copied from interface: CacheQuery
        Defines the Lucene field names projected and returned in a query result Each field is converted back to it's object representation, an Object[] being returned for each "row"

        A projectable field must be stored in the Lucene index and use a TwoWayFieldBridge Unless notified in their JavaDoc, all built-in bridges are two-way. All @DocumentId fields are projectable by design.

        If the projected field is not a projectable field, null is returned in the object[]

        Specified by:
        projection in interface CacheQuery<E>
        Parameters:
        fields - the projected field names
        Returns:
        this to allow for method chaining, but the type parameter now becomes Object[]
      • timeout

        public CacheQuery<E> timeout​(long timeout,
                                     TimeUnit timeUnit)
        Description copied from interface: CacheQuery
        Set the timeout for this query. If the query hasn't finished processing before the timeout, an exception will be thrown.
        Specified by:
        timeout in interface CacheQuery<E>
        Parameters:
        timeout - the timeout duration
        timeUnit - the time unit of the timeout parameter
        Returns: