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
public class SolrInputDocumentReader extends Reader
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.
-
-
Constructor Summary
Constructors Constructor Description SolrInputDocumentReader(SolrInputDocument doc, int maxTotalChars, int maxCharsPerFieldValue)
Creates a character-stream reader that streams all String fields in the document with space as separatorSolrInputDocumentReader(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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static String
asString(Reader reader)
Gets the whole reader as a Stringvoid
close()
protected static String[]
getStringFields(SolrInputDocument doc)
int
read(char[] cbuf, int off, int len)
boolean
ready()
void
setEodReturnValue(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 Detail
-
SolrInputDocumentReader
public SolrInputDocumentReader(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 documentmaxCharsPerFieldValue
- max chars to consume per field valuemaxTotalChars
- max chars to consume total
-
SolrInputDocumentReader
public SolrInputDocumentReader(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 includefieldValueSep
- separator to insert between field valuesmaxCharsPerFieldValue
- max chars to consume per field valuemaxTotalChars
- max chars to consume total
-
-
Method Detail
-
read
public int read(char[] cbuf, int off, int len) throws IOException
- Specified by:
read
in classReader
- Throws:
IOException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classReader
- Throws:
IOException
-
ready
public boolean ready() throws IOException
- Overrides:
ready
in 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
public static String asString(Reader reader)
Gets the whole reader as a String- Returns:
- string of concatenated fields
-
getStringFields
protected static String[] getStringFields(SolrInputDocument doc)
-
-