I have a document `category` field, which is a "|,;" separator separated
string, in indexing phase, i do manually split the value into atomic terms
and index as StringField, & i also add a same name StoredField which
contains original value form:
*List<String> terms = analyzer.analysis((String)fieldValue); for(String
term: terms) { doc.add(new StringField(fieldName, term, Store.NO));
}doc.add(new StoredField(fieldName, (String)fieldValue));*
Then i use Suggest API to load this field's all terms:
* Set<String> terms = new HashSet<String>();
DocumentDictionary dict = new DocumentDictionary(this.indexReader,
fieldName, null); InputIterator it; try { it =
dict.getEntryIterator(); // BytesRef byteRef = null;
while((byteRef = it.next()) != null){ String term
= byteRef.utf8ToString(); terms.add(term); }
} catch (IOException e) { e.printStackTrace();
log.error(e.getMessage(), e); }*
To my supprise, terms seems only returning the STORED value, which is the
original value form, but i expect they should be the terms i put in each
StringField!
Is this a design miss or impl. limit?
string, in indexing phase, i do manually split the value into atomic terms
and index as StringField, & i also add a same name StoredField which
contains original value form:
*List<String> terms = analyzer.analysis((String)fieldValue); for(String
term: terms) { doc.add(new StringField(fieldName, term, Store.NO));
}doc.add(new StoredField(fieldName, (String)fieldValue));*
Then i use Suggest API to load this field's all terms:
* Set<String> terms = new HashSet<String>();
DocumentDictionary dict = new DocumentDictionary(this.indexReader,
fieldName, null); InputIterator it; try { it =
dict.getEntryIterator(); // BytesRef byteRef = null;
while((byteRef = it.next()) != null){ String term
= byteRef.utf8ToString(); terms.add(term); }
} catch (IOException e) { e.printStackTrace();
log.error(e.getMessage(), e); }*
To my supprise, terms seems only returning the STORED value, which is the
original value form, but i expect they should be the terms i put in each
StringField!
Is this a design miss or impl. limit?