Package org.apache.solr.update.processor
Class SolrInputDocumentReader
java.lang.Object
java.io.Reader
org.apache.solr.update.processor.SolrInputDocumentReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
Reader on top of SolrInputDocument that can "stream" a document as a character stream in a memory
efficient way, to avoid potentially large intermediate string buffers containing whole document
content.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionSolrInputDocumentReader(org.apache.solr.common.SolrInputDocument doc, int maxTotalChars, int maxCharsPerFieldValue) Creates a character-stream reader that streams all String fields in the document with space as separatorSolrInputDocumentReader(org.apache.solr.common.SolrInputDocument doc, String[] fields, int maxTotalChars, int maxCharsPerFieldValue, String fieldValueSep) Creates a character-stream reader that reads the listed fields in order, with max lengths as specified. -
Method Summary
Modifier and TypeMethodDescriptionstatic StringGets the whole reader as a Stringvoidclose()protected static String[]getStringFields(org.apache.solr.common.SolrInputDocument doc) intread(char[] cbuf, int off, int len) booleanready()voidsetEodReturnValue(int eodReturnValue) Choose another return value than -1 for end of document reached.Methods inherited from class java.io.Reader
mark, markSupported, nullReader, read, read, read, reset, skip, transferTo
-
Constructor Details
-
SolrInputDocumentReader
public SolrInputDocumentReader(org.apache.solr.common.SolrInputDocument doc, int maxTotalChars, int maxCharsPerFieldValue) Creates a character-stream reader that streams all String fields in the document with space as separator- Parameters:
doc- Solr input documentmaxTotalChars- max chars to consume totalmaxCharsPerFieldValue- max chars to consume per field value
-
SolrInputDocumentReader
public SolrInputDocumentReader(org.apache.solr.common.SolrInputDocument doc, String[] fields, int maxTotalChars, int maxCharsPerFieldValue, String fieldValueSep) Creates a character-stream reader that reads the listed fields in order, with max lengths as specified.- Parameters:
doc- Solr input documentfields- list of field names to includemaxTotalChars- max chars to consume totalmaxCharsPerFieldValue- max chars to consume per field valuefieldValueSep- separator to insert between field values
-
-
Method Details
-
read
- Specified by:
readin classReader- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classReader- Throws:
IOException
-
ready
- Overrides:
readyin classReader- Throws:
IOException
-
setEodReturnValue
public void setEodReturnValue(int eodReturnValue) Choose another return value than -1 for end of document reached. Warning: Only to work around buggy consumers such as LangDetect 1.1- Parameters:
eodReturnValue- integer which defaults to -1
-
asString
Gets the whole reader as a String- Returns:
- string of concatenated fields
-
getStringFields
-