Package org.dlese.dpc.index.reader
Class LazyDocumentMap
java.lang.Object
org.dlese.dpc.index.reader.LazyDocumentMap
- All Implemented Interfaces:
Map
A
Map for accessing the data stored in a Lucene Document as field/value pairs. The data is loaded from the index only when
requested via the Map accessor methods (e.g. lazy loading), making access to very large Documents possible
in an efficient manner. Each stored field in the Document corresponds
to a key in the Map. For example documentMap.get("title") gets the text that was indexed and stored under
the field name "title" for the Document. Supports read operations only. A LazyDocumentMap is available
from search results by calling ResultDoc.getDocMap(). Example that uses JSTL inside a JSP page (assumes result is an instance of ResultDoc):
The title is: ${result.docMap["title"]}.
- Author:
- John Weatherley
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassA Map entry containing lucene fieldName/fieldValuesclassA List for field names in a Lucene Document.classA Set for field names in a Lucene Document.classA List for field values in a Lucene Document.classA Set for field values in a Lucene Document. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for the LazyDocumentMap object.LazyDocumentMap(org.apache.lucene.document.Document doc) Constructor for the LazyDocumentMap object. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Method not supported.booleancontainsKey(Object fieldName) Determines whether a given field exists in the LuceneDocument.booleancontainsValue(Object value) Determines whether the given field value is present in the LuceneDocument.entrySet()Gets the Set of field/value entries for the LuceneDocument.Gets the text content of the given Lucene field as a String or null if the given field is not available or was not stored in the index.Gets the names of all fields in the document as Strings.Gets the values for all fields in the document as Map.Entry Objects.getFirstTextValue(String fieldName) Returns the string value of the field with the given name if any exist in this document, or null.booleanisEmpty()Determines whether there are no fields in thisDocument.keySet()Gets the field names in the LuceneDocument.Method not supported.voidMethod not supported.Method not supported.intsize()Gets the number of fields in theDocument.values()Gets all field values that are present in the LuceneDocument.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
LazyDocumentMap
public LazyDocumentMap(org.apache.lucene.document.Document doc) Constructor for the LazyDocumentMap object.- Parameters:
doc- The Lucene Document that is exposed by this Map.
-
LazyDocumentMap
public LazyDocumentMap()Constructor for the LazyDocumentMap object.
-
-
Method Details
-
getFieldNames
Gets the names of all fields in the document as Strings. This is similar to #keySet, but does not load all field/values into the Map and is therefore more efficient if only some fields are needed.- Returns:
- The fieldNames value
- See Also:
-
getFieldValues
Gets the values for all fields in the document as Map.Entry Objects.- Returns:
- The fieldNames value
-
getFirstTextValue
Returns the string value of the field with the given name if any exist in this document, or null. If multiple fields exist with this name, this method returns the first value added. If only binary fields with this name exist, returns null.- Parameters:
fieldName- Name of the field- Returns:
- The text value or null if none
-
get
Gets the text content of the given Lucene field as a String or null if the given field is not available or was not stored in the index. Text includes all values stored in the index for the given field. -
keySet
Gets the field names in the LuceneDocument. This is similar to #getFieldNames but it also loads all field/values into the Map and is therfore more expensive than #getFieldNames, especially for large Documents. -
entrySet
Gets the Set of field/value entries for the LuceneDocument. EachMap.EntryObject in the Set contains the field name (key) and corresponding field value. The field value will be an empty String if the given field was not set to be stored in the index. -
containsKey
Determines whether a given field exists in the LuceneDocument.- Specified by:
containsKeyin interfaceMap- Parameters:
fieldName- A field name- Returns:
- True if the field exists in the Lucene
Document
-
values
Gets all field values that are present in the LuceneDocument. -
containsValue
Determines whether the given field value is present in the LuceneDocument.- Specified by:
containsValuein interfaceMap- Parameters:
value- A field value- Returns:
- True if the field value is present in this
Document
-
isEmpty
public boolean isEmpty()Determines whether there are no fields in thisDocument. -
size
public int size()Gets the number of fields in theDocument. -
putAll
Method not supported. -
put
Method not supported. -
remove
Method not supported. -
clear
public void clear()Method not supported.
-