I have a task to parse all documents in a solr index. I use Lucene
IndexReader to read the index and go through each field from all documents.
However, for float or int dynamic fields, the stringValue() call always
returns some special characters. I tried tokenStreamValue, byteValue,
readerValue, and they return null.
Following is my method to parse the solr index. My question is, how can I
get the values from non-string dynamic fields properly?
public static void main(String[] args) throws Exception {
IndexReader reader =
IndexReader.open("/path/to/my/index/directory");
int total = reader.numDocs();
System.out.println("Total documents: " + total);
for (int i = 0; i < 1; i++) {
Document d = reader.document(i);
List<Field> fields = d.getFields();
for (Field f : fields) {
String name = f.name();
String val = f.stringValue();
System.out.println("get field / value: [" + name + "=" + val
+ "]"); }
}
reader.close();
}