org.eaglei.search.provider.lucene
Class LuceneSearchProviderIndexer

java.lang.Object
  extended by org.eaglei.search.provider.lucene.LuceneSearchIndexSchema
      extended by org.eaglei.search.provider.lucene.LuceneSearchProviderIndexer
All Implemented Interfaces:
java.lang.Runnable, org.eaglei.search.events.IndexChangeProcessor

public final class LuceneSearchProviderIndexer
extends LuceneSearchIndexSchema
implements org.eaglei.search.events.IndexChangeProcessor, java.lang.Runnable

Creates a Lucene index for eagle-i RDF resource data according to the schema defined in LuceneSearchIndexSchema.

Author:
frost

Field Summary
 
Fields inherited from class org.eaglei.search.provider.lucene.LuceneSearchIndexSchema
HIGH_BOOST, HIGHEST_BOOST, INDEX_OBJECT_PROP_LABELS, INFERRED_TYPE, INSTITUTION_LABEL, INSTITUTION_URI, LOW_BOOST, MEDIUM_BOOST, OBJECT_URI_POSTFIX, PREF_TEXT, RELATED, RESOURCE_FLAG, STANDARD_BOOST, TEXT, URI
 
Constructor Summary
LuceneSearchProviderIndexer(org.eaglei.model.EIOntModel eagleiOntModel, org.apache.lucene.analysis.Analyzer analyzer, org.apache.lucene.store.Directory directory, org.eaglei.search.provider.SearchProvider nestedProvider)
          Creates the LuceneSearchProviderIndexer
 
Method Summary
 void commit()
          Commits any pending changes the changes
 org.apache.lucene.document.Document getDocumentByURI(org.eaglei.model.EIURI uri)
           
 org.apache.lucene.index.IndexWriter getIndexWriter()
          Retrieves the IndexWriter
 java.util.List<org.eaglei.model.EIURI> getRelatedDocuments(org.eaglei.model.EIURI uri)
          Gets the EIURIs of all documents that reference the specified document via an object property.
 long getUpdateFrequency()
           
 void indexProperties(org.eaglei.search.events.ChangeEventPayloadItem result, org.apache.lucene.document.Document doc)
          Index the data type and object properties for a given search result and document.
 void indexSearchResult(org.eaglei.search.events.ChangeEventPayloadItem result, boolean materializeTypes)
          Indexes the specified SearchResult.
protected static boolean isDeletedSearchResult(org.eaglei.search.events.ChangeEventPayloadItem result)
          Checks if this SearchResult represents a deleted resource.
 void processIndexChangeEvent_X(org.eaglei.search.events.IndexChangeEvent e)
          Tedstub
 void processIndexChangeEvent(org.eaglei.search.events.IndexChangeEvent e)
           
 void run()
           
 void setUpdateFrequency(long updateFrequency)
          Sets the frequency for updating the lucene index from the embedded provider.
protected static java.lang.String stripObjectURIPostfix(java.lang.String fieldWithPostfix)
          Removes the _uri postfix from the document field name.
 void updateIndex()
           
 
Methods inherited from class org.eaglei.search.provider.lucene.LuceneSearchIndexSchema
isLabProperty, isPropertyField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LuceneSearchProviderIndexer

public LuceneSearchProviderIndexer(org.eaglei.model.EIOntModel eagleiOntModel,
                                   org.apache.lucene.analysis.Analyzer analyzer,
                                   org.apache.lucene.store.Directory directory,
                                   org.eaglei.search.provider.SearchProvider nestedProvider)
                            throws java.io.IOException
Creates the LuceneSearchProviderIndexer

Parameters:
eagleiOntModel - Referenced to the eagle-i ontology
analyzer - The Lucene analyzer that is used for indexing and searching.
directory - The directory that holds the index.
Throws:
java.io.IOException - Thrown if an error is encountered.
Method Detail

setUpdateFrequency

public void setUpdateFrequency(long updateFrequency)
Sets the frequency for updating the lucene index from the embedded provider.

Parameters:
updateFrequency - Update frequency in msec.

getUpdateFrequency

public long getUpdateFrequency()
See Also:
setUpdateFrequency(long)

getIndexWriter

public org.apache.lucene.index.IndexWriter getIndexWriter()
Retrieves the IndexWriter

Returns:

commit

public void commit()
            throws java.io.IOException
Commits any pending changes the changes

Throws:
java.io.IOException

getRelatedDocuments

public java.util.List<org.eaglei.model.EIURI> getRelatedDocuments(org.eaglei.model.EIURI uri)
                                                           throws java.io.IOException
Gets the EIURIs of all documents that reference the specified document via an object property.

Parameters:
uri - URI of property whose referencing documents are being retrieved.
Returns:
List of URIs of referencing documents.
Throws:
java.io.IOException - Thrown if an error is encountered executing the query

stripObjectURIPostfix

protected static java.lang.String stripObjectURIPostfix(java.lang.String fieldWithPostfix)
Removes the _uri postfix from the document field name.

Parameters:
fieldWithPostfix - Field with the _uri postfix
Returns:
Field name without the _uri postfix

getDocumentByURI

public org.apache.lucene.document.Document getDocumentByURI(org.eaglei.model.EIURI uri)
                                                     throws java.io.IOException
Throws:
java.io.IOException

isDeletedSearchResult

protected static boolean isDeletedSearchResult(org.eaglei.search.events.ChangeEventPayloadItem result)
Checks if this SearchResult represents a deleted resource. The /harvest API returns a special resource representation for resources that have been deleted since the specified timestamp.

Returns:
True if it represents a deleted resource.

processIndexChangeEvent

public void processIndexChangeEvent(org.eaglei.search.events.IndexChangeEvent e)
                             throws java.io.IOException
Specified by:
processIndexChangeEvent in interface org.eaglei.search.events.IndexChangeProcessor
Throws:
java.io.IOException

indexSearchResult

public void indexSearchResult(org.eaglei.search.events.ChangeEventPayloadItem result,
                              boolean materializeTypes)
                       throws java.io.IOException
Indexes the specified SearchResult.

Parameters:
result - SearchResult
materializeTypes - True if the types should be materialized.
Throws:
java.io.IOException - Thrown if an error is encountered indexing the result

indexProperties

public void indexProperties(org.eaglei.search.events.ChangeEventPayloadItem result,
                            org.apache.lucene.document.Document doc)
Index the data type and object properties for a given search result and document.

Parameters:
result - SearchResult
doc - Document

updateIndex

public void updateIndex()
                 throws java.io.IOException
Throws:
java.io.IOException

run

public void run()
Specified by:
run in interface java.lang.Runnable

processIndexChangeEvent_X

public void processIndexChangeEvent_X(org.eaglei.search.events.IndexChangeEvent e)
                               throws java.io.IOException
Tedstub

Throws:
java.io.IOException


Copyright © 2009-2011 Eagle-I. All Rights Reserved.