@Internal public class LuceneSearchIndexAccessor extends Object implements SearchIndexAccessor
Constructor and Description |
---|
LuceneSearchIndexAccessor(com.atlassian.bonnie.LuceneConnection luceneConnection,
LuceneFieldVisitor luceneFieldVisitor,
LuceneSearchMapper luceneSearchMapper) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
execute(SearchIndexAction action)
Executes a SearchIndexAction on the underlying search index.
|
int |
numDocs()
Get the total number of index documents for the underlying search index
|
void |
optimize()
Manually optimize the index for search by merging segments.
|
void |
reset(Runnable replaceIndex)
Execute a method after the index has been closed and before the index has been reopened
|
long |
scan(SearchQuery searchQuery,
Set<String> requestedFields,
Consumer<Map<String,String[]>> consumer)
Scans the index for documents that match the provided searchQuery.
|
long |
scan(SearchQuery searchQuery,
Set<String> requestedFields,
Consumer<ScannedDocument> consumer,
float defaultSCore)
Scans the index for documents that match the provided searchQuery.
|
SearchResults |
search(ISearch search,
Set<String> requestedFields)
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.
|
void |
snapshot(File destinationDirectory)
Take a snapshot of the current index and store it into the destination directory
|
void |
withBatchUpdate(BatchUpdateAction batchUpdateAction)
Execute the update action in a batch
|
public LuceneSearchIndexAccessor(com.atlassian.bonnie.LuceneConnection luceneConnection, LuceneFieldVisitor luceneFieldVisitor, LuceneSearchMapper luceneSearchMapper)
public SearchResults search(ISearch search, Set<String> requestedFields) throws InvalidSearchException
SearchIndexAccessor
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.
search
in interface SearchIndexAccessor
search
- the search to performrequestedFields
- requested fields. Passing null
will request all fields, and passing empty set will request none.SearchResults
instanceInvalidSearchException
public long scan(SearchQuery searchQuery, Set<String> requestedFields, Consumer<Map<String,String[]>> consumer)
SearchIndexAccessor
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.
scan
in interface SearchIndexAccessor
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.public long scan(SearchQuery searchQuery, Set<String> requestedFields, Consumer<ScannedDocument> consumer, float defaultSCore)
SearchIndexAccessor
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.
scan
in interface SearchIndexAccessor
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.public void execute(SearchIndexAction action)
SearchIndexAccessor
execute
in interface SearchIndexAccessor
action
- SearchIndexActionpublic int numDocs()
SearchIndexAccessor
numDocs
in interface SearchIndexAccessor
public void withBatchUpdate(BatchUpdateAction batchUpdateAction)
SearchIndexAccessor
withBatchUpdate
in interface SearchIndexAccessor
batchUpdateAction
- the batch update actionpublic void snapshot(File destinationDirectory) throws SearchIndexAccessException
SearchIndexAccessor
snapshot
in interface SearchIndexAccessor
destinationDirectory
- the destination directorySearchIndexAccessException
- if the snapshot could not be takenpublic void reset(Runnable replaceIndex)
SearchIndexAccessor
reset
in interface SearchIndexAccessor
replaceIndex
- the method that needs to be executedpublic void optimize()
SearchIndexAccessor
optimize
in interface SearchIndexAccessor
public void close()
Copyright © 2003–2023 Atlassian. All rights reserved.
View cookie preferences