Index

Inheritance: java.lang.Object

All Implemented Interfaces: java.io.Closeable

public class Index implements Closeable

Represents the main class for indexing documents and search through them.

Learn more

The example demonstrates a typical usage of the class.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchResult result = index.search(query); // Searching in index
 
```
 

Constructors

Constructor Description
Index() Initializes a new instance of the Index class in memory.
Index(IndexSettings settings) Initializes a new instance of the Index class in memory with particular index settings.
Index(String indexFolder) Initializes a new instance of the Index class.
Index(String indexFolder, IndexSettings settings) Initializes a new instance of the
Index
class.
Index(String indexFolder, boolean overwriteIfExists) Initializes a new instance of the
Index
class.
Index(String indexFolder, IndexSettings settings, boolean overwriteIfExists) Initializes a new instance of the
Index
class.

Methods

Method Description
getEvents() Gets the event hub for subscribing to events.
getIndexInfo() Gets the basic information on the index.
getRepository() Gets the index repository object if the index is contained in it.
getIndexSettings() Gets the index settings.
getDictionaries() Gets the dictionary repository.
close() Releases all resources used by the
Index
.
add(String path) Performs indexing operation.
add(String path, IndexingOptions options) Performs indexing operation.
add(String[] paths) Performs indexing operation.
add(String[] paths, IndexingOptions options) Performs indexing operation.
add(Document[] documents, IndexingOptions options) Performs indexing operation.
add(ExtractedData[] data, IndexingOptions options) Performs indexing operation.
update() Re-indexes documents that have been changed or deleted since last update.
update(UpdateOptions options) Re-indexes documents that have been changed or deleted since last update.
getIndexingReports() Gets the reports on indexing operations.
getSearchReports() Gets the reports on search operations.
search(String query) Searches in index.
search(String query, SearchOptions options) Searches in index.
search(SearchQuery query) Searches in index.
search(SearchQuery query, SearchOptions options) Searches in index.
search(SearchImage image, ImageSearchOptions options) Performs a reverse image search in the index.
searchNext(ChunkSearchToken chunkSearchToken) Continues the chunk search started with method Search.
searchNext(ChunkSearchToken chunkSearchToken, Cancellation cancellation) Continues the chunk search started with method Search.
optimize() Minimizes the number of index segments by merging them one with another.
optimize(MergeOptions options) Minimizes the number of index segments by merging them one with another.
merge(Index index, MergeOptions options) Merges the specified index into the current index.
merge(IndexRepository repository, MergeOptions options) Merges indexes from the specified index repository into the current index.
highlight(FoundDocument document, Highlighter highlighter) Generates HTML formatted text with highlighted found terms.
highlight(FoundDocument document, Highlighter highlighter, HighlightOptions options) Generates HTML formatted text with highlighted found terms.
getIndexedDocuments() Gets an array of all indexed documents.
getIndexedDocumentItems(DocumentInfo documentInfo) Gets an array of a document items.
GetIndexedDocument(String documentKey) Gets an indexed document by document key.
getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter) Generates the text of an indexed document and passes it through an output adapter.
getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter, TextOptions options) Generates HTML formatted text for indexed document and transfers it through the output adapter.
getIndexedPaths() Gets an array of indexed paths - documents or folders.
delete(String[] paths, UpdateOptions options) Deletes indexed files or folders from the index.
delete(UpdateOptions options, String[] documentKeys) Deletes documents indexed from streams or structures.
notifyIndex(Notification notification) Passes the specified notification object to the index to perform the notification.
changeAttributes(AttributeChangeBatch batch) Applies the specified batch of attribute changes to indexed documents without reindexing during the update operation.
getAttributes(String path) Gets all the attributes associated with the specified indexed document.
loadIntoMemoryCompletely(String indexFolder) Loads the entire index into memory.
loadIntoMemoryCompletely(String indexFolder, IndexSettings settings) Loads the entire index into memory.

Index()

public Index()

Initializes a new instance of the Index class in memory.

The example demonstrates how to create index in memory without saving files to disk.

 ```

 Index index = new Index();
 
```
 

Index(IndexSettings settings)

public Index(IndexSettings settings)

Initializes a new instance of the Index class in memory with particular index settings.

Parameters:

Parameter Type Description
settings IndexSettings The index settings object.

The example demonstrates how to create index in memory without saving files to disk with particular index settings.

 ```

 IndexSettings settings = new IndexSettings();
 settings.setIndexType(IndexType.CompactIndex);
 Index index = new Index(settings);
 
```
 

|

Index(String indexFolder)

public Index(String indexFolder)

Initializes a new instance of the Index class. Creates a new or opens an existing index on disk.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.

The example demonstrates how to create an index on a disk or open an existing index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 Index index = new Index(indexFolder);
 
```
 

|

Index(String indexFolder, IndexSettings settings)

public Index(String indexFolder, IndexSettings settings)

Initializes a new instance of the Index class. Creates a new index with particular settings or opens an existing index on disk.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.
settings IndexSettings The index settings object.

The example demonstrates how to create an index on a disk with particular index settings.

 ```

 String indexFolder = "c:\\MyIndex\\";
 IndexSettings settings = new IndexSettings();
 settings.setIndexType(IndexType.CompactIndex);
 Index index = new Index(indexFolder, settings);
 
```
 

|

Index(String indexFolder, boolean overwriteIfExists)

public Index(String indexFolder, boolean overwriteIfExists)

Initializes a new instance of the Index class. Loads an existing index from disk if overwriteIfExists is false ; creates a new index on disk otherwise.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.
overwriteIfExists boolean The flag of overwriting the index folder.

The example demonstrates how to create a new index in a folder that already contains another index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 Index index = new Index(indexFolder, true);
 
```
 

|

Index(String indexFolder, IndexSettings settings, boolean overwriteIfExists)

public Index(String indexFolder, IndexSettings settings, boolean overwriteIfExists)

Initializes a new instance of the Index class. Loads an existing index from disk if overwriteIfExists is false ; creates a new index on disk with particular index settings otherwise.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.
settings IndexSettings The index settings object.
overwriteIfExists boolean The flag of overwriting the index folder.

The example demonstrates how to create an index on a disk with particular index settings.

 ```

 String indexFolder = "c:\\MyIndex\\";
 IndexSettings settings = new IndexSettings();
 settings.setIndexType(IndexType.CompactIndex);
 Index index = new Index(indexFolder, settings, true);
 
```
 

|

getEvents()

public final EventHub getEvents()

Gets the event hub for subscribing to events.

Returns: EventHub - The event hub for subscribing to events.

getIndexInfo()

public final IndexInfo getIndexInfo()

Gets the basic information on the index.

Returns: IndexInfo - The basic information on the index.

getRepository()

public final IndexRepository getRepository()

Gets the index repository object if the index is contained in it.

Returns: IndexRepository - The index repository object.

getIndexSettings()

public final IndexSettings getIndexSettings()

Gets the index settings.

Returns: IndexSettings - The index settings.

getDictionaries()

public final DictionaryRepository getDictionaries()

Gets the dictionary repository.

Returns: DictionaryRepository - The dictionary repository.

close()

public final void close()

Releases all resources used by the Index .

add(String path)

public final void add(String path)

Performs indexing operation. Adds a file or folder by an absolute or relative path. Documents from all subfolders will be indexed.

Parameters:

Parameter Type Description
path java.lang.String The path to a file or folder to be indexed.

The example demonstrates how to add documents to an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String folderPath = "c:\\MyDocuments\\";
 String filePath = "c:\\Documents\\MyFile.txt";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(folderPath); // Indexing documents in the specified folder
 index.add(filePath); // Indexing the specified document
 
```
 

|

add(String path, IndexingOptions options)

public final void add(String path, IndexingOptions options)

Performs indexing operation. Adds a file or folder by an absolute or relative path. Documents from all subfolders will be indexed.

Parameters:

Parameter Type Description
path java.lang.String The path to a file or folder to be indexed.
options IndexingOptions The indexing options.

The example demonstrates how to add documents to an index with particular indexing options.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String folderPath = "c:\\MyDocuments\\";
 String filePath = "c:\\Documents\\MyFile.txt";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 IndexingOptions options = new IndexingOptions();
 options.setThreads(2); // Setting the number of indexing threads
 index.add(folderPath, options); // Indexing documents in the specified folder
 index.add(filePath, options); // Indexing the specified document
 
```
 

|

add(String[] paths)

public final void add(String[] paths)

Performs indexing operation. Adds files or folders by an absolute or relative path. Documents from all subfolders will be indexed.

Parameters:

Parameter Type Description
paths java.lang.String[] The paths to a files or folders to be indexed.

The example demonstrates how to add documents to an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String folderPath = "c:\\MyDocuments\\";
 String filePath = "c:\\Documents\\MyFile.txt";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 String[] paths = new String[] { folderPath, filePath };
 index.add(paths); // Indexing documents at the specified paths
 
```
 

|

add(String[] paths, IndexingOptions options)

public final void add(String[] paths, IndexingOptions options)

Performs indexing operation. Adds files or folders by an absolute or relative path. Documents from all subfolders will be indexed.

Parameters:

Parameter Type Description
paths java.lang.String[] The paths to a files or folders to be indexed.
options IndexingOptions The indexing options.

The example demonstrates how to add documents to an index with particular indexing options.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String folderPath = "c:\\MyDocuments\\";
 String filePath = "c:\\Documents\\MyFile.txt";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 IndexingOptions options = new IndexingOptions();
 options.setThreads(2); // Setting the number of indexing threads
 String[] paths = new String[] { folderPath, filePath };
 index.add(paths, options); // Indexing documents at the specified paths
 
```
 

|

add(Document[] documents, IndexingOptions options)

public final void add(Document[] documents, IndexingOptions options)

Performs indexing operation. Adds documents from file system, stream or structure.

Parameters:

Parameter Type Description
documents Document[] The documents from file system, stream or structure.
options IndexingOptions The indexing options.

add(ExtractedData[] data, IndexingOptions options)

public final void add(ExtractedData[] data, IndexingOptions options)

Performs indexing operation. Adds the extracted data to the index.

Parameters:

Parameter Type Description
data ExtractedData[] The extracted data.
options IndexingOptions The indexing options.

update()

public final void update()

Re-indexes documents that have been changed or deleted since last update. Adds new files that have been added to the indexed folders.

The example demonstrates how to update an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 // Delete documents from the documents folder or modify them or add new documents to the folder
 index.update(); // Updating the index
 
```
 

update(UpdateOptions options)

public final void update(UpdateOptions options)

Re-indexes documents that have been changed or deleted since last update. Adds new files that have been added to the indexed folders.

Parameters:

Parameter Type Description
options UpdateOptions The update options.

The example demonstrates how to update an index with particular update options.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 // Delete documents from the documents folder or modify them or add new documents to the folder
 UpdateOptions options = new UpdateOptions();
 options.setThreads(2); // Setting the number of indexing threads
 index.update(options); // Updating the index
 
```
 

|

getIndexingReports()

public final IndexingReport[] getIndexingReports()

Gets the reports on indexing operations.

Returns: com.groupdocs.search.common.IndexingReport[] - The indexing reports.

The example demonstrates how to get indexing reports.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 IndexingReport[] reports = index.getIndexingReports(); // Getting indexing reports
 
```
 

getSearchReports()

public final SearchReport[] getSearchReports()

Gets the reports on search operations.

Returns: com.groupdocs.search.common.SearchReport[] - The search reports.

The example demonstrates how to get search reports.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query1 = "Einstein";
 String query2 = "Newton";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchResult result1 = index.search(query1); // Searching
 SearchResult result2 = index.search(query2);
 SearchResult result3 = index.search(query1 + " & " + query2);
 SearchReport[] reports = index.getSearchReports(); // Getting search reports
 
```
 

search(String query)

public final SearchResult search(String query)

Searches in index.

Parameters:

Parameter Type Description
query java.lang.String The search query.

The following example demonstrates how to perform simple search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchResult result = index.search(query); // Searching
 
```
 

The following example demonstrates how to perform Regex search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 String query = "^[0-9]{3,}"; // The caret symbol at the beginning of the search query tells the index that it is a Regex query
 SearchResult result = index.search(query); // Searching
 
```
 

The following example demonstrates how to perform faceted search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 String query = "content:Newton"; // The word before the colon in the query means the document field name to search
 SearchResult result = index.search(query); // Searching
 
```
 

|

Returns: SearchResult - The search result.

search(String query, SearchOptions options)

public final SearchResult search(String query, SearchOptions options)

Searches in index.

Parameters:

Parameter Type Description
query java.lang.String The search query.
options SearchOptions The search options.

The following example demonstrates how to perform fuzzy search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchOptions options = new SearchOptions();
 options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
 options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(1)); // Setting the number of possible differences for each word
 // Double quotes at the beginning and end tells the index that it is phrase search query
 String query = "\"The Pursuit of Happiness\"";
 SearchResult result = index.search(query, options); // Searching
 
```
 

The following example demonstrates how to perform synonym search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchOptions options = new SearchOptions();
 options.setUseSynonymSearch(true); // Enabling the synonym search
 String query = "cry";
 SearchResult result = index.search(query, options); // Searching
 
```
 

|

Returns: SearchResult - The search result.

search(SearchQuery query)

public final SearchResult search(SearchQuery query)

Searches in index.

Parameters:

Parameter Type Description
query SearchQuery The search query.

The following example demonstrates how to perform search using query in object form.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 // Creating subquery 1
 SearchQuery subquery1 = SearchQuery.createWordQuery("accommodation");
 subquery1.setSearchOptions(new SearchOptions()); // Setting search options only for subquery 1
 subquery1.getSearchOptions().getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
 subquery1.getSearchOptions().getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3)); // Setting maximum number of differences
 // Creating subquery 2
 SearchQuery subquery2 = SearchQuery.createNumericRangeQuery(1, 1000000);
 // Creating subquery 3
 SearchQuery subquery3 = SearchQuery.createRegexQuery("(.)\\1");
 // Combining subqueries into one query
 SearchQuery query = SearchQuery.createPhraseSearchQuery(subquery1, subquery2, subquery3);
 SearchResult result = index.search(query); // Searching
 
```
 

|

Returns: SearchResult - The search result.

search(SearchQuery query, SearchOptions options)

public final SearchResult search(SearchQuery query, SearchOptions options)

Searches in index.

Parameters:

Parameter Type Description
query SearchQuery The search query.
options SearchOptions The search options.

The following example demonstrates how to perform search using query in object form.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 // Creating subquery of date range search
 SearchQuery subquery1 = SearchQuery.createDateRangeQuery(new Date(2011, 6, 17), new Date(2013, 1, 1));
 // Creating subquery of wildcard with number of missed words from 0 to 2
 SearchQuery subquery2 = SearchQuery.createWildcardQuery(0, 2);
 // Creating subquery of simple word
 SearchQuery subquery3 = SearchQuery.createWordQuery("birth");
 subquery3.setSearchOptions(new SearchOptions()); // Setting search options only for subquery 3
 subquery3.getSearchOptions().getFuzzySearch().setEnabled(true);
 subquery3.getSearchOptions().getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(1));
 // Combining subqueries into one query
 SearchQuery query = SearchQuery.createPhraseSearchQuery(subquery1, subquery2, subquery3);
 // Creating search options object with increased capacity of found occurrences
 SearchOptions options = new SearchOptions(); // Overall search options
 options.setMaxOccurrenceCountPerTerm(1000000);
 options.setMaxTotalOccurrenceCount(10000000);
 SearchResult result = index.search(query, options); // Searching
 
```
 

|

Returns: SearchResult - The search result.

search(SearchImage image, ImageSearchOptions options)

public final ImageSearchResult search(SearchImage image, ImageSearchOptions options)

Performs a reverse image search in the index.

Parameters:

Parameter Type Description
image SearchImage The image to search.
options ImageSearchOptions The image search options.

Returns: ImageSearchResult - The result of a reverse image search.

searchNext(ChunkSearchToken chunkSearchToken)

public final SearchResult searchNext(ChunkSearchToken chunkSearchToken)

Continues the chunk search started with method Search.

Parameters:

Parameter Type Description
chunkSearchToken ChunkSearchToken The chunk search token.

The example demonstrates how to perform chunk search.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 SearchOptions options = new SearchOptions();
 options.setChunkSearch(true); // Enabling chunk search
 SearchResult result = index.search(query, options); // Starting chunk search
 System.out.println("Document count: " + result.getDocumentCount());
 System.out.println("Occurrence count: " + result.getOccurrenceCount());
 while (result.getNextChunkSearchToken() != null) {
     result = index.searchNext(result.getNextChunkSearchToken()); // Continuing chunk search
     System.out.println("Document count: " + result.getDocumentCount());
     System.out.println("Occurrence count: " + result.getOccurrenceCount());
 }
 
```
 

|

Returns: SearchResult - The search result.

searchNext(ChunkSearchToken chunkSearchToken, Cancellation cancellation)

public final SearchResult searchNext(ChunkSearchToken chunkSearchToken, Cancellation cancellation)

Continues the chunk search started with method Search.

Parameters:

Parameter Type Description
chunkSearchToken ChunkSearchToken The chunk search token.
cancellation Cancellation The cancellation object.

The example demonstrates how to perform search using query in object form.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder); // Indexing documents from the specified folder
 Cancellation cancellation = new Cancellation(); // This cancellation object aborts all search continuations if canceled
 SearchOptions options = new SearchOptions();
 options.setChunkSearch(true); // Enabling chunk search
 options.setCancellation(cancellation);
 SearchResult result = index.search(query, options); // Starting chunk search
 System.out.println("Document count: " + result.getDocumentCount());
 System.out.println("Occurrence count: " + result.getOccurrenceCount());
 while (result.getNextChunkSearchToken() != null) {
     result = index.searchNext(result.getNextChunkSearchToken(), cancellation); // Continuing chunk search
     System.out.println("Document count: " + result.getDocumentCount());
     System.out.println("Occurrence count: " + result.getOccurrenceCount());
 }
 
```
 

|

Returns: SearchResult - The search result.

optimize()

public final void optimize()

Minimizes the number of index segments by merging them one with another. This operation improves search performance.

The example demonstrates how to merge segments of an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder1 = "c:\\MyDocuments1\\";
 String documentsFolder2 = "c:\\MyDocuments2\\";
 String documentsFolder3 = "c:\\MyDocuments3\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder1); // Indexing documents from the specified folder
 index.add(documentsFolder2); // Each call to AddToIndex creates at least one new segment in the index
 index.add(documentsFolder3);
 // Merging segments of the index
 index.optimize();
 
```
 

optimize(MergeOptions options)

public final void optimize(MergeOptions options)

Minimizes the number of index segments by merging them one with another. This operation improves search performance.

Parameters:

Parameter Type Description
options MergeOptions The merge options.

The example demonstrates how to merge segments of an index with particular merge options.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder1 = "c:\\MyDocuments1\\";
 String documentsFolder2 = "c:\\MyDocuments2\\";
 String documentsFolder3 = "c:\\MyDocuments3\\";
 Index index = new Index(indexFolder); // Creating index in the specified folder
 index.add(documentsFolder1); // Indexing documents from the specified folder
 index.add(documentsFolder2); // Each call to AddToIndex creates at least one new segment in the index
 index.add(documentsFolder3);
 MergeOptions options = new MergeOptions();
 options.setAsync(true); // Asynchronous operation
 options.setCancellation(new Cancellation()); // Creating cancellation object
 // Merging segments of the index
 index.optimize(options); // This method will return before the operation is completed
 options.getCancellation().cancelAfter(10000); // Setting maximum duration of the operation to 10 seconds
 
```
 

|

merge(Index index, MergeOptions options)

public final void merge(Index index, MergeOptions options)

Merges the specified index into the current index. Note that the other index will not be changed.

If the other index has a previous version, it must be updated before merging with IndexUpdater .

Parameters:

Parameter Type Description
index Index The index to merge into.
options MergeOptions The merge options.

The example demonstrates how to merge an index into the current index.

 ```

 String indexFolder1 = "c:\\MyIndex1\\";
 String indexFolder2 = "c:\\MyIndex2\\";
 String documentsFolder1 = "c:\\MyDocuments1\\";
 String documentsFolder2 = "c:\\MyDocuments2\\";
 Index index1 = new Index(indexFolder1); // Creating index1
 index1.add(documentsFolder1); // Indexing documents
 Index index2 = new Index(indexFolder2); // Creating index2
 index2.add(documentsFolder2); // Indexing documents
 MergeOptions options = new MergeOptions();
 options.setCancellation(new Cancellation()); // Creating cancellation object
 // Merging index2 into index1. Note that index2 files will not be changed.
 index1.merge(index2, options);
 
```
 

|

merge(IndexRepository repository, MergeOptions options)

public final void merge(IndexRepository repository, MergeOptions options)

Merges indexes from the specified index repository into the current index. Note that indexes in the repository will not be changed.

If other indexes have a previous version, they must be updated before merging with IndexUpdater .

Parameters:

Parameter Type Description
repository IndexRepository The index repository to merge into.
options MergeOptions The merge options.

The example demonstrates how to merge an index repository into the current index.

 ```

 String indexFolder1 = "c:\\MyIndex1\\";
 String indexFolder2 = "c:\\MyIndex2\\";
 String indexFolder3 = "c:\\MyIndex3\\";
 String documentsFolder1 = "c:\\MyDocuments1\\";
 String documentsFolder2 = "c:\\MyDocuments2\\";
 String documentsFolder3 = "c:\\MyDocuments3\\";
 Index index1 = new Index(indexFolder1); // Creating index1
 index1.add(documentsFolder1); // Indexing documents
 IndexRepository repository = new IndexRepository(); // Creating index repository
 Index index2 = repository.create(indexFolder2); // Creating index2
 index2.add(documentsFolder2); // Indexing documents
 Index index3 = repository.create(indexFolder3); // Creating index3
 index3.add(documentsFolder3); // Indexing documents
 MergeOptions options = new MergeOptions();
 options.setCancellation(new Cancellation()); // Creating cancellation object
 // Merging all indexes in the index repository into index1. Note that index2 and index3 will not be changed.
 index1.merge(repository, options);
 
```
 

|

highlight(FoundDocument document, Highlighter highlighter)

public final void highlight(FoundDocument document, Highlighter highlighter)

Generates HTML formatted text with highlighted found terms.

Parameters:

Parameter Type Description
document FoundDocument The found document.
highlighter Highlighter The search result highlighter.

The example demonstrates how to highlight occurrences in HTML formatted text.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentFolder);
 // Search for the word 'eternity'
 SearchResult result = index.search("eternity");
 // Highlighting occurrences in text
 if (result.getDocumentCount() > 0) {
     FoundDocument document = result.getFoundDocument(0); // Getting the first found document
     OutputAdapter outputAdapter = new FileOutputAdapter("c:\\Highlighted.html"); // Creating an output adapter to the file
     Highlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter object
     index.highlight(document, highlighter); // Generating HTML formatted text with highlighted occurrences
 }
 
```
 

|

highlight(FoundDocument document, Highlighter highlighter, HighlightOptions options)

public final void highlight(FoundDocument document, Highlighter highlighter, HighlightOptions options)

Generates HTML formatted text with highlighted found terms.

Parameters:

Parameter Type Description
document FoundDocument The found document.
highlighter Highlighter The search result highlighter.
options HighlightOptions The highlight options.

The example demonstrates how to highlight occurrences in HTML formatted text.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentFolder);
 // Search for the word 'eternity'
 SearchResult result = index.search("eternity");
 // Highlighting occurrences in text
 if (result.getDocumentCount() > 0) {
     FoundDocument document = result.getFoundDocument(0); // Getting the first found document
     OutputAdapter outputAdapter = new FileOutputAdapter("c:\\Highlighted.html"); // Creating an output adapter to the file
     Highlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter object
     HighlightOptions options = new HighlightOptions(); // Creating the highlight options object
     options.setTermsBefore(5);
     options.setTermsAfter(5);
     options.setTermsTotal(15);
     index.highlight(document, highlighter, options); // Generating HTML formatted text with highlighted occurrences
 }
 
```
 

|

getIndexedDocuments()

public final DocumentInfo[] getIndexedDocuments()

Gets an array of all indexed documents.

Returns: com.groupdocs.search.results.DocumentInfo[] - An array of all indexed documents.

The example demonstrates how to get a list of indexed documents from an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index in the specified folder
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Getting list of indexed documents
 DocumentInfo[] documents = index.getIndexedDocuments();
 
```
 

getIndexedDocumentItems(DocumentInfo documentInfo)

public final DocumentInfo[] getIndexedDocumentItems(DocumentInfo documentInfo)

Gets an array of a document items.

Parameters:

Parameter Type Description
documentInfo DocumentInfo A document info.

The example demonstrates how to get a list of items of an indexed document from an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index in the specified folder
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Getting list of indexed documents
 DocumentInfo[] documents = index.getIndexedDocuments();
 for (int i = 0; i < documents.length; i++) {
     DocumentInfo document = documents[i];
     System.out.println(document.getFilePath());
     DocumentInfo[] items = index.getIndexedDocumentItems(document); // Getting list of document items
     for (int j = 0; j < items.length; j++) {
         DocumentInfo item = items[j];
         System.out.println("\t" + item.getInnerPath());
     }
 }
 
```
 

|

Returns: com.groupdocs.search.results.DocumentInfo[] - An array of a document items.

GetIndexedDocument(String documentKey)

public DocumentInfo GetIndexedDocument(String documentKey)

Gets an indexed document by document key.

Parameters:

Parameter Type Description
documentKey java.lang.String The document key.

Returns: DocumentInfo - The indexed document.

getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter)

public final void getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter)

Generates the text of an indexed document and passes it through an output adapter.

Parameters:

Parameter Type Description
documentInfo DocumentInfo The indexed document info.
adapter OutputAdapter The output adapter.

The example demonstrates how to get the text of an indexed document from an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index in the specified folder
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Getting list of indexed documents
 DocumentInfo[] documents = index.getIndexedDocuments();
 // Getting a document text
 if (documents.length > 0) {
     FileOutputAdapter outputAdapter = new FileOutputAdapter("C:\\Text.html");
     index.getDocumentText(documents[0], outputAdapter);
 }
 
```
 

|

getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter, TextOptions options)

public final void getDocumentText(DocumentInfo documentInfo, OutputAdapter adapter, TextOptions options)

Generates HTML formatted text for indexed document and transfers it through the output adapter.

Parameters:

Parameter Type Description
documentInfo DocumentInfo The indexed document info.
adapter OutputAdapter The output adapter.
options TextOptions The text retrieving options.

getIndexedPaths()

public final String[] getIndexedPaths()

Gets an array of indexed paths - documents or folders.

Returns: java.lang.String[] - An array of indexed paths.

delete(String[] paths, UpdateOptions options)

public final DeleteResult delete(String[] paths, UpdateOptions options)

Deletes indexed files or folders from the index. Then updates the index without deleted paths. Note that an individual document cannot be deleted from the index if it was added to the index as part of a folder.

Parameters:

Parameter Type Description
paths java.lang.String[] The paths to files or folders to delete.
options UpdateOptions The update options.

The example demonstrates how to delete indexed paths from an index.

 ```

 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder1 = "c:\\MyDocuments\\";
 String documentsFolder2 = "c:\\MyDocuments2\\";
 // Creating an index in the specified folder
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folders
 index.add(documentsFolder1);
 index.add(documentsFolder2);
 // Getting indexed paths from the index
 String[] indexedPaths1 = index.getIndexedPaths();
 // Writing indexed paths to the console
 System.out.println("Indexed paths:");
 for (String path : indexedPaths1) {
     System.out.println("\t" + path);
 }
 // Deleting index path from the index
 DeleteResult deleteResult = index.delete(new String[] { documentsFolder1 }, new UpdateOptions());
 // Getting indexed paths after deletion
 String[] indexedPaths2 = index.getIndexedPaths();
 System.out.println("\nDeleted paths: " + deleteResult.getSuccessCount());
 System.out.println("\nIndexed paths:");
 for (String path : indexedPaths2) {
     System.out.println("\t" + path);
 }
 
```
 

|

Returns: DeleteResult - An object describing the result of deleting files or folders from the index.

delete(UpdateOptions options, String[] documentKeys)

public final DeleteResult delete(UpdateOptions options, String[] documentKeys)

Deletes documents indexed from streams or structures. Then updates the index without deleted documents.

Parameters:

Parameter Type Description
options UpdateOptions The update options.
documentKeys java.lang.String[] The keys of documents added from streams or structures.

Returns: DeleteResult - An object describing the result of deleting documents from the index.

notifyIndex(Notification notification)

public final boolean notifyIndex(Notification notification)

Passes the specified notification object to the index to perform the notification.

Parameters:

Parameter Type Description
notification Notification The notification object.

Returns: boolean - Returns true if the notification was successfully performed; otherwise false .

changeAttributes(AttributeChangeBatch batch)

public final void changeAttributes(AttributeChangeBatch batch)

Applies the specified batch of attribute changes to indexed documents without reindexing during the update operation.

Parameters:

Parameter Type Description
batch AttributeChangeBatch The attribute change batch.

getAttributes(String path)

public final String[] getAttributes(String path)

Gets all the attributes associated with the specified indexed document.

Parameters:

Parameter Type Description
path java.lang.String The document path.

Returns: java.lang.String[] - Attributes associated with the document.

loadIntoMemoryCompletely(String indexFolder)

public static Index loadIntoMemoryCompletely(String indexFolder)

Loads the entire index into memory. Any changes to the index are not automatically saved to the original folder.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.

Returns: Index - The loaded in-memory index.

loadIntoMemoryCompletely(String indexFolder, IndexSettings settings)

public static Index loadIntoMemoryCompletely(String indexFolder, IndexSettings settings)

Loads the entire index into memory. Any changes to the index are not automatically saved to the original folder.

Parameters:

Parameter Type Description
indexFolder java.lang.String The index folder path.
settings IndexSettings The index settings object.

Returns: Index - The loaded in-memory index.