org.apache.jackrabbit.core.query.lucene
Class NodeIndexer

java.lang.Object
  extended by org.apache.jackrabbit.core.query.lucene.NodeIndexer

public class NodeIndexer
extends Object

Creates a lucene Document object from a Node.


Field Summary
protected  TextExtractor extractor
          Content extractor.
protected  NamespaceMappings mappings
          Namespace mappings to use for indexing.
protected  NodeState node
          The NodeState of the node to index
protected  ItemStateManager stateProvider
          The persistent item state provider
protected  boolean supportHighlighting
          If set to true the fulltext field is stored and and a term vector is created with offset information.
 
Constructor Summary
NodeIndexer(NodeState node, ItemStateManager stateProvider, NamespaceMappings mappings, TextExtractor extractor)
          Creates a new node indexer.
 
Method Summary
protected  void addBinaryValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the binary value to the document as the named field.
protected  void addBooleanValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the string representation of the boolean value to the document as the named field.
protected  void addCalendarValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the calendar value to the document as the named field.
protected  void addDoubleValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the double value to the document as the named field.
protected  void addLongValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the long value to the document as the named field.
protected  void addNameValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the name value to the document as the named field.
protected  void addPathValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the path value to the document as the named field.
protected  void addReferenceValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Adds the reference value to the document as the named field.
protected  void addStringValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue)
          Deprecated. Use addStringValue(Document, String, Object, boolean) instead.
protected  void addStringValue(org.apache.lucene.document.Document doc, String fieldName, Object internalValue, boolean tokenized)
          Adds the string value to the document both as the named field and optionally for full text indexing if tokenized is true.
protected  org.apache.lucene.document.Document createDoc()
          Creates a lucene Document.
protected  org.apache.lucene.document.Field createFulltextField(Reader value)
          Creates a fulltext field for the reader value.
protected  org.apache.lucene.document.Field createFulltextField(String value)
          Creates a fulltext field for the string value.
 NodeId getNodeId()
          Returns the NodeId of the indexed node.
protected  InternalValue getValue(QName name)
          Utility method that extracts the first value of the named property of the current node.
 void setSupportHighlighting(boolean b)
          If set to true additional information is stored in the index to support highlighting using the rep:excerpt pseudo property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

node

protected final NodeState node
The NodeState of the node to index


stateProvider

protected final ItemStateManager stateProvider
The persistent item state provider


mappings

protected final NamespaceMappings mappings
Namespace mappings to use for indexing. This is the internal namespace mapping.


extractor

protected final TextExtractor extractor
Content extractor.


supportHighlighting

protected boolean supportHighlighting
If set to true the fulltext field is stored and and a term vector is created with offset information.

Constructor Detail

NodeIndexer

public NodeIndexer(NodeState node,
                   ItemStateManager stateProvider,
                   NamespaceMappings mappings,
                   TextExtractor extractor)
Creates a new node indexer.

Parameters:
node - the node state to index.
stateProvider - the persistent item state manager to retrieve properties.
mappings - internal namespace mappings.
extractor - content extractor
Method Detail

getNodeId

public NodeId getNodeId()
Returns the NodeId of the indexed node.

Returns:
the NodeId of the indexed node.

setSupportHighlighting

public void setSupportHighlighting(boolean b)
If set to true additional information is stored in the index to support highlighting using the rep:excerpt pseudo property.

Parameters:
b - true to enable highlighting support.

createDoc

protected org.apache.lucene.document.Document createDoc()
                                                 throws RepositoryException
Creates a lucene Document.

Returns:
the lucene Document with the index layout.
Throws:
RepositoryException - if an error occurs while reading property values from the ItemStateProvider.

addBinaryValue

protected void addBinaryValue(org.apache.lucene.document.Document doc,
                              String fieldName,
                              Object internalValue)
Adds the binary value to the document as the named field.

This implementation checks if this node is of type nt:resource and if that is the case, tries to extract text from the binary property using the extractor.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

getValue

protected InternalValue getValue(QName name)
                          throws ItemStateException
Utility method that extracts the first value of the named property of the current node. Returns null if the property does not exist or contains no values.

Parameters:
name - property name
Returns:
value of the named property, or null
Throws:
ItemStateException - if the property can not be accessed

addBooleanValue

protected void addBooleanValue(org.apache.lucene.document.Document doc,
                               String fieldName,
                               Object internalValue)
Adds the string representation of the boolean value to the document as the named field.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addCalendarValue

protected void addCalendarValue(org.apache.lucene.document.Document doc,
                                String fieldName,
                                Object internalValue)
Adds the calendar value to the document as the named field. The calendar value is converted to an indexable string value using the DateField class.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addDoubleValue

protected void addDoubleValue(org.apache.lucene.document.Document doc,
                              String fieldName,
                              Object internalValue)
Adds the double value to the document as the named field. The double value is converted to an indexable string value using the DoubleField class.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addLongValue

protected void addLongValue(org.apache.lucene.document.Document doc,
                            String fieldName,
                            Object internalValue)
Adds the long value to the document as the named field. The long value is converted to an indexable string value using the LongField class.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addReferenceValue

protected void addReferenceValue(org.apache.lucene.document.Document doc,
                                 String fieldName,
                                 Object internalValue)
Adds the reference value to the document as the named field. The value's string representation is added as the reference data. Additionally the reference data is stored in the index.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addPathValue

protected void addPathValue(org.apache.lucene.document.Document doc,
                            String fieldName,
                            Object internalValue)
Adds the path value to the document as the named field. The path value is converted to an indexable string value using the name space mappings with which this class has been created.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addStringValue

protected void addStringValue(org.apache.lucene.document.Document doc,
                              String fieldName,
                              Object internalValue)
Deprecated. Use addStringValue(Document, String, Object, boolean) instead.

Adds the string value to the document both as the named field and for full text indexing.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

addStringValue

protected void addStringValue(org.apache.lucene.document.Document doc,
                              String fieldName,
                              Object internalValue,
                              boolean tokenized)
Adds the string value to the document both as the named field and optionally for full text indexing if tokenized is true.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.
tokenized - If true the string is also tokenized and fulltext indexed.

addNameValue

protected void addNameValue(org.apache.lucene.document.Document doc,
                            String fieldName,
                            Object internalValue)
Adds the name value to the document as the named field. The name value is converted to an indexable string treating the internal value as a qualified name and mapping the name space using the name space mappings with which this class has been created.

Parameters:
doc - The document to which to add the field
fieldName - The name of the field to add
internalValue - The value for the field to add to the document.

createFulltextField

protected org.apache.lucene.document.Field createFulltextField(String value)
Creates a fulltext field for the string value.

Parameters:
value - the string value.
Returns:
a lucene field.

createFulltextField

protected org.apache.lucene.document.Field createFulltextField(Reader value)
Creates a fulltext field for the reader value.

Parameters:
value - the reader value.
Returns:
a lucene field.


Copyright © 2004-2007 The Apache Software Foundation. All Rights Reserved.