Package com.logicaldoc.core.searchengine
Interface SearchEngine
-
- All Known Implementing Classes:
StandardSearchEngine
public interface SearchEngine
Model of a search engine with search and I/O capabilities. Various implementations can be provided, and the configuration property searchengine must qualify the concrete implementation to use.- Since:
- 6.5
- Author:
- Marco Meschieri - LogicalDOC
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addHit(Document document, InputStream content)
Adds a new hit to the indexvoid
addHit(Document document, String content)
Adds a new Hit into the indexString
check()
Launch the check on the Indexvoid
close()
Closes all indexing operations, shuts down the engine.void
deleteHit(long id)
Deletes an hit in the index of the search engine.void
deleteHits(Collection<Long> ids)
Removed all passed hits from the indexvoid
dropIndex()
Drops the full-text indexlong
getCount()
Returns the number of indexed documents in all indexes.Hit
getHit(long id)
Object
getServer()
Service method to get access from the internal corevoid
init()
To be called on the context startup, this method creates all indexes and unlock the existing onesboolean
isLocked()
Check if at least one index is lockedvoid
optimize()
Launch the index optimization that physically deletes the removed entries.long
purge()
Removes from the index those entries without a coutnerpart in the databaseHits
query(String expression, int page, int size)
Executes a low-level query in the fulltext index
Attention: The hits will be populated with just the fields stored in the indexHits
search(String expression, String[] filters, String expressionLanguage, Integer rows)
Search for hits.
Attention: The hits will be populated with just the fields stored in the indexvoid
unlock()
This method can unlock a locked index.
-
-
-
Method Detail
-
addHit
void addHit(Document document, String content) throws Exception
Adds a new Hit into the index- Parameters:
document
- The document to add into the indexcontent
- The extracted body text- Throws:
Exception
- is an error happens and the document cannot be added to the index
-
addHit
void addHit(Document document, InputStream content) throws Exception
Adds a new hit to the index- Parameters:
content
- Stream of the document's filedocument
- The document that we want to add- Throws:
Exception
- is an error happens and the document cannot be added to the index
-
optimize
void optimize()
Launch the index optimization that physically deletes the removed entries. This is a long running operation.
-
check
String check()
Launch the check on the Index- Returns:
- the output of the check
-
deleteHit
void deleteHit(long id)
Deletes an hit in the index of the search engine.- Parameters:
id
- - id of the hit
-
deleteHits
void deleteHits(Collection<Long> ids)
Removed all passed hits from the index- Parameters:
ids
- Collection of hit identifiers
-
getHit
Hit getHit(long id)
-
search
Hits search(String expression, String[] filters, String expressionLanguage, Integer rows)
Search for hits.
Attention: The hits will be populated with just the fields stored in the index- Parameters:
expression
- the search expressionfilters
- a set of filter expressions, optionalexpressionLanguage
- the language in which theexpression
is writtedrows
- maximum number elements to be returned- Returns:
- the hits ordered by descending score
-
query
Hits query(String expression, int page, int size)
Executes a low-level query in the fulltext index
Attention: The hits will be populated with just the fields stored in the index- Parameters:
expression
- the query to usepage
- the page to retrievesize
- the maximum number of entries to retrieve- Returns:
- the search result, ordered by ascending id
-
close
void close()
Closes all indexing operations, shuts down the engine.
-
unlock
void unlock()
This method can unlock a locked index.
-
isLocked
boolean isLocked()
Check if at least one index is locked- Returns:
- true if one or more indexes are locked
-
getCount
long getCount()
Returns the number of indexed documents in all indexes. Used for statistical output.- Returns:
- the total number of entries in the index
-
dropIndex
void dropIndex()
Drops the full-text index
-
purge
long purge()
Removes from the index those entries without a coutnerpart in the database- Returns:
- number of deleted entries
-
init
void init()
To be called on the context startup, this method creates all indexes and unlock the existing ones
-
getServer
Object getServer()
Service method to get access from the internal core- Returns:
- the search server representation
-
-