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:
org.eaglei.search.events.IndexChangeProcessor

public final class LuceneSearchProviderIndexer
extends LuceneSearchIndexSchema
implements org.eaglei.search.events.IndexChangeProcessor

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)
          Creates the LuceneSearchProviderIndexer
 
Method Summary
 void commit()
          Commits any pending changes the changes
 org.apache.lucene.analysis.Analyzer getAnalyzer()
           
 org.apache.lucene.store.Directory getDirectory()
           
 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(org.eaglei.search.events.IndexChangeEvent e)
           
 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(org.eaglei.search.provider.SearchResultSet resultSet)
           
 
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)
                            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

getAnalyzer

public org.apache.lucene.analysis.Analyzer getAnalyzer()

getDirectory

public org.apache.lucene.store.Directory getDirectory()

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(org.eaglei.search.provider.SearchResultSet resultSet)
                 throws java.io.IOException
Throws:
java.io.IOException


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