Class DelegatingSearchIndexAccessor

    • Method Detail

      • search

        public SearchResults search​(ISearch search,
                                    Set<String> requestedFields)
                             throws InvalidSearchException
        Description copied from interface: SearchIndexAccessor
        Perform a search with a given criteria, the returns searchResults only have the fields requested in the projection filled out, no other fields are valid in the searchResult. SearchResults will throw an FieldNotRequestedException if an attempt is made to access a field value that has not had it's key included in the projection Set.

        Will throw an InvalidSearchException if some error occurred converting the search object into a search that could be performed in the back-end. Usually this is a sign that some plugin that was used to create the search is no longer available.

        Specified by:
        search in interface SearchIndexAccessor
        Parameters:
        search - the search to perform
        requestedFields - requested fields. Passing null will request all fields, and passing empty set will request none.
        Returns:
        a SearchResults instance
        Throws:
        InvalidSearchException
      • scan

        public long scan​(SearchQuery searchQuery,
                         Set<String> requestedFields,
                         Consumer<Map<String,​String[]>> consumer)
        Description copied from interface: SearchIndexAccessor
        Scans the index for documents that match the provided searchQuery. The requestedFields set is used to specify which values need to be returned. The consumer will collect all the results found by the scan.

        Note that it is possible for a document to match the query, but not have any of the requested fields. This will result in an empty String[] for those fields that don't exist on the document. If you don't want to return those documents, you should specify a consumer that filters these out.

        Specified by:
        scan in interface SearchIndexAccessor
        Parameters:
        searchQuery - SearchQuery to scan the index for.
        requestedFields - Set of field names that are requested from the index. Any fields provided here that is not on the document will return an empty String[] When providing an empty set, the consumer will only get empty maps to consume.
        consumer - Consumer that handles each found document.
        Returns:
        the number of documents that matched the searchQuery.
      • scan

        public long scan​(SearchQuery searchQuery,
                         Set<String> requestedFields,
                         Consumer<ScannedDocument> consumer,
                         float defaultScore)
        Description copied from interface: SearchIndexAccessor
        Scans the index for documents that match the provided searchQuery. The requestedFields set is used to specify which values need to be returned. The consumer will collect all the results found by the scan and convert them into ScannedDocument, which contains a score (if scoreIncluded is true) and a field-value map of the requested fields.

        Note that it is possible for a document to match the query, but not have any of the requested fields as the other scan method.

        This will result in an empty String[] for those fields that don't exist on the document. If you don't want to return those documents, you should specify a consumer that filters these out.

        Specified by:
        scan in interface SearchIndexAccessor
        Parameters:
        searchQuery - SearchQuery to scan the index for.
        requestedFields - Set of field names that are requested from the index. Any fields provided here that is not on the document will return an empty String[] When providing an empty set, the consumer will only get empty maps to consume.
        consumer - Consumer that handles each found document.
        defaultScore - a default score to be included in the ScannedDocument if it is not possible to retrieve the score for the document.
        Returns:
        the number of documents that matched the searchQuery.
      • numDocs

        public int numDocs()
        Description copied from interface: SearchIndexAccessor
        Get the total number of index documents for the underlying search index
        Specified by:
        numDocs in interface SearchIndexAccessor
        Returns:
        the total number of index documents
      • reset

        public void reset​(Runnable replaceIndex)
        Description copied from interface: SearchIndexAccessor
        Execute a method after the index has been closed and before the index has been reopened
        Specified by:
        reset in interface SearchIndexAccessor
        Parameters:
        replaceIndex - the method that needs to be executed
      • optimize

        public void optimize()
        Description copied from interface: SearchIndexAccessor
        Manually optimize the index for search by merging segments. Is generally horribly inefficient and rarely justified. Added for the usage-tracking-plugin index as it was using optimize before the Lucene Upgrade to prevent file handles from running out with a quickly ever-growing index which never has deletions. Please carefully consider whether to use this at all, it has the potential, especially on large instances to lock index usage for a long period of time. Per-segment search performance improvements and default merge policies should make this no longer needed. If you need it, the index was probably poorly designed.
        Specified by:
        optimize in interface SearchIndexAccessor