Package org.apache.solr.common
Class SolrDocument
- java.lang.Object
-
- org.apache.solr.common.SolrDocumentBase<Object,SolrDocument>
-
- org.apache.solr.common.SolrDocument
-
- All Implemented Interfaces:
Serializable
,Iterable<Map.Entry<String,Object>>
,Map<String,Object>
,MapSerializable
,MapWriter
,NavigableObject
,org.noggit.JSONWriter.Writable
public class SolrDocument extends SolrDocumentBase<Object,SolrDocument> implements Iterable<Map.Entry<String,Object>>
A concrete representation of a document within a Solr index. Unlike a lucene Document, a SolrDocument may have an Object value matching the type defined in schema.xmlFor indexing documents, use the SolrInputDocument that contains extra information for document and field boosting.
- Since:
- solr 1.3
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SolrDocument()
SolrDocument(Map<String,Object> fields)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addChildDocument(SolrDocument child)
void
addChildDocuments(Collection<SolrDocument> children)
void
addField(String name, Object value)
This will add a field to the document.void
clear()
Remove all fields from the documentboolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<String,Object>>
entrySet()
Object
get(Object key)
int
getChildDocumentCount()
Deprecated.List<SolrDocument>
getChildDocuments()
Returns the list of anonymous child documents, or null if none.Collection<String>
getFieldNames()
Get all field names.Object
getFieldValue(String name)
Get the value or collection of values for a given field.Map<String,Object>
getFieldValueMap()
Expose a Map interface to the solr fields.Collection<Object>
getFieldValues(String name)
Get a collection of values for a given field nameMap<String,Collection<Object>>
getFieldValuesMap()
Expose a Map interface to the solr field value collection.Object
getFirstValue(String name)
returns the first value for a fieldboolean
hasChildDocuments()
Has anonymous children?boolean
isEmpty()
Iterator<Map.Entry<String,Object>>
iterator()
Iterate of String->Object keysSet<String>
keySet()
Object
put(String key, Object value)
void
putAll(Map<? extends String,? extends Object> t)
Object
remove(Object key)
boolean
removeFields(String name)
Remove all fields with the namevoid
setField(String name, Object value)
Set a field with the given object.int
size()
String
toString()
Collection<Object>
values()
void
visitSelfAndNestedDocs(BiConsumer<String,SolrDocument> consumer)
Beta API; may change at will.void
writeMap(MapWriter.EntryWriter ew)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Methods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size
-
-
-
-
Method Detail
-
writeMap
public void writeMap(MapWriter.EntryWriter ew) throws IOException
- Specified by:
writeMap
in interfaceMapWriter
- Throws:
IOException
-
getFieldNames
public Collection<String> getFieldNames()
Description copied from class:SolrDocumentBase
Get all field names.- Specified by:
getFieldNames
in classSolrDocumentBase<Object,SolrDocument>
- Returns:
- a list of field names defined in this document - this Collection is directly backed by this SolrDocument.
- See Also:
keySet()
-
clear
public void clear()
Remove all fields from the document
-
removeFields
public boolean removeFields(String name)
Remove all fields with the name
-
setField
public void setField(String name, Object value)
Set a field with the given object. If the object is an Array, it will set multiple fields with the included contents. This will replace any existing field with the given name- Specified by:
setField
in classSolrDocumentBase<Object,SolrDocument>
- Parameters:
name
- name of the field to setvalue
- value of the field
-
addField
public void addField(String name, Object value)
This will add a field to the document. If fields already exist with this name it will append value to the collection. If the value is Collection, each value will be added independently.The class type of value and the name parameter should match schema.xml. schema.xml can be found in conf directory under the solr home by default.
- Specified by:
addField
in classSolrDocumentBase<Object,SolrDocument>
- Parameters:
name
- Name of the field, should match one of the field names defined under "fields" tag in schema.xml.value
- Value of the field, should be of same class type as defined by "type" attribute of the corresponding field in schema.xml.
-
getFieldValue
public Object getFieldValue(String name)
Get the value or collection of values for a given field.- Specified by:
getFieldValue
in classSolrDocumentBase<Object,SolrDocument>
-
getFieldValues
public Collection<Object> getFieldValues(String name)
Get a collection of values for a given field name- Specified by:
getFieldValues
in classSolrDocumentBase<Object,SolrDocument>
-
visitSelfAndNestedDocs
public void visitSelfAndNestedDocs(BiConsumer<String,SolrDocument> consumer)
Beta API; may change at will.
-
getFieldValuesMap
public Map<String,Collection<Object>> getFieldValuesMap()
Expose a Map interface to the solr field value collection.
-
getFieldValueMap
public Map<String,Object> getFieldValueMap()
Expose a Map interface to the solr fields. This function is useful for JSTL
-
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<String,Object>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<String,Object>
-
addChildDocument
public void addChildDocument(SolrDocument child)
- Specified by:
addChildDocument
in classSolrDocumentBase<Object,SolrDocument>
-
addChildDocuments
public void addChildDocuments(Collection<SolrDocument> children)
- Specified by:
addChildDocuments
in classSolrDocumentBase<Object,SolrDocument>
-
getChildDocuments
public List<SolrDocument> getChildDocuments()
Description copied from class:SolrDocumentBase
Returns the list of anonymous child documents, or null if none. There may be other "labelled" child documents found in field values, in which the field name is the label. This may be deprecated in 8.0.- Specified by:
getChildDocuments
in classSolrDocumentBase<Object,SolrDocument>
-
hasChildDocuments
public boolean hasChildDocuments()
Description copied from class:SolrDocumentBase
Has anonymous children?- Specified by:
hasChildDocuments
in classSolrDocumentBase<Object,SolrDocument>
-
getChildDocumentCount
@Deprecated public int getChildDocumentCount()
Deprecated.Description copied from class:SolrDocumentBase
The anonymous child document count.- Specified by:
getChildDocumentCount
in classSolrDocumentBase<Object,SolrDocument>
-
-