EventHub

Inheritance: java.lang.Object, com.groupdocs.search.events.EventHubBase

public abstract class EventHub extends EventHubBase

Provides index events for subscribing.

Learn more

The example demonstrates a typical usage of the class.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().ErrorOccurred.add(new EventHandler() {
     public void invoke(Object sender, IndexErrorEventArgs args) {
         System.out.println(args.getMessage());
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Searching in the index
 SearchResult result = index.search(query);
 

Constructors

Constructor Description
EventHub()

Fields

Field Description
OperationFinished Occurs when an index operation is finished.
ErrorOccurred Occurs when an error occurs during an index operation.
OperationProgressChanged Occurs when the progress of the indexing or update operation changes.
OptimizationProgressChanged Occurs when the progress of the optimization operation changes.
PasswordRequired Occurs when a document requires password for opening.
FileIndexing Occurs when a document is going to be indexed.
ImagePreparing Occurs when an image is going to be prepared for indexing.
StatusChanged Occurs when the index status changes.
SearchPhaseCompleted Occurs when the search phase is completed.

EventHub()

public EventHub()

OperationFinished

public final Event<EventHandler<OperationFinishedEventArgs>> OperationFinished

Occurs when an index operation is finished.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().OperationFinished.add(new EventHandler() {
     public void invoke(Object sender, OperationFinishedEventArgs args) {
         System.out.println("Operation finished: " + args.getOperationType());
         System.out.println("Message: " + args.getMessage());
         System.out.println("Index folder: " + args.getIndexFolder());
         DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
         System.out.println("Time: " + df.format(args.getTime()));
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 

ErrorOccurred

public final Event<EventHandler<IndexErrorEventArgs>> ErrorOccurred

Occurs when an error occurs during an index operation.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 String query = "Einstein";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().ErrorOccurred.add(new EventHandler() {
     public void invoke(Object sender, IndexErrorEventArgs args) {
         System.out.println(args.getMessage());
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Searching in the index
 SearchResult result = index.search(query);
 

OperationProgressChanged

public final Event<EventHandler<OperationProgressEventArgs>> OperationProgressChanged

Occurs when the progress of the indexing or update operation changes.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().OperationProgressChanged.add(new EventHandler() {
     public void invoke(Object sender, OperationProgressEventArgs args) {
         System.out.println("Last processed: " + args.getLastDocumentPath());
         System.out.println("Result: " + args.getLastDocumentStatus());
         System.out.println("Processed documents: " + args.getTotalDocuments());
         System.out.println("Progress percentage: " + args.getProgressPercentage());
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 

OptimizationProgressChanged

public final Event<EventHandler<OptimizationProgressEventArgs>> OptimizationProgressChanged

Occurs when the progress of the optimization operation changes.

PasswordRequired

public final Event<EventHandler<PasswordRequiredEventArgs>> PasswordRequired

Occurs when a document requires password for opening.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().PasswordRequired.add(new EventHandler() {
     public void invoke(Object sender, PasswordRequiredEventArgs args) {
         if (args.getDocumentFullPath().endsWith("ProtectedDocument.pdf")) {
             args.setPassword("123456");
         }
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 

FileIndexing

public final Event<EventHandler<FileIndexingEventArgs>> FileIndexing

Occurs when a document is going to be indexed.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().FileIndexing.add(new EventHandler() {
     public void invoke(Object sender, FileIndexingEventArgs args) {
         if (args.getDocumentFullPath().endsWith("Protected.pdf")) {
             args.setAdditionalFields(new DocumentField[] {
                 new DocumentField("Tags", "Protected")
             });
         }
         if (!args.getDocumentFullPath().toLowerCase().contains("important")) {
             args.setSkipIndexing(true);
         }
     }
 });
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 

ImagePreparing

public final Event<EventHandler<ImagePreparingEventArgs>> ImagePreparing

Occurs when an image is going to be prepared for indexing.

StatusChanged

public final Event<EventHandler<BaseIndexEventArgs>> StatusChanged

Occurs when the index status changes.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Subscribing to the event
 index.getEvents().StatusChanged.add(new EventHandler() {
     public void invoke(Object sender, BaseIndexEventArgs args) {
         if (args.getStatus() != IndexStatus.InProgress) {
             // A notification of the operation completion should be here
         }
     }
 });
 // Setting the flag for asynchronous indexing
 IndexingOptions options = new IndexingOptions();
 options.setAsync(true);
 // Asynchronous indexing documents from the specified folder
 // The method terminates before the operation completes
 index.add(documentsFolder, options);
 

SearchPhaseCompleted

public final Event<EventHandler<SearchPhaseEventArgs>> SearchPhaseCompleted

Occurs when the search phase is completed.

The example demonstrates how to use the event.


 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Subscribing to the event
 index.getEvents().SearchPhaseCompleted.add(new EventHandler() {
     public void invoke(Object sender, SearchPhaseEventArgs args) {
         System.out.println("Search phase: " + args.getSearchPhase());
         System.out.println("Words: " + args.getWords().length);
     }
 });
 SearchOptions options = new SearchOptions();
 options.setUseSynonymSearch(true);
 options.setUseWordFormsSearch(true);
 options.getFuzzySearch().setEnabled(true);
 options.setUseHomophoneSearch(true);
 SearchResult result = index.search("Einstein", options);