0
只見提取所有可用條款場的一個例子here如何獲取所有存儲的值而不是Lucene.Net中的字段?
它不適合我porpouses的原因是因爲條款和存儲的值是不同的,例如, "black cat"
的儲值將被重新編爲"black"
和"cat"
兩個條款。在我的代碼中,我需要在這種情況下提取整個存儲的值"black cat"
。
只見提取所有可用條款場的一個例子here如何獲取所有存儲的值而不是Lucene.Net中的字段?
它不適合我porpouses的原因是因爲條款和存儲的值是不同的,例如, "black cat"
的儲值將被重新編爲"black"
和"cat"
兩個條款。在我的代碼中,我需要在這種情況下提取整個存儲的值"black cat"
。
是的,你可以做到這一點。我不是C#程序員,但希望你能理解Java代碼。
IndexReader reader = DirectoryReader.open(dir);
final int len = reader.maxDoc();
for (int i = 0; i < len; ++i) {
Document document = reader.document(i);
List<IndexableField> fields = document.getFields();
for (IndexableField field : fields) {
if (field.fieldType().stored()) {
System.out.println(field.stringValue());
}
}
}
所以,基本上,我遍歷所有文檔,獲取所有字段,如果它們被存儲,獲取數據。你可以通過字段的名稱來過濾它,這是你需要的。
完整的測試可以在這裏找到 - https://raw.githubusercontent.com/MysterionRise/information-retrieval-adventure/master/src/main/java/org/mystic/GetAllStoredFieldValues.java(也有證明,它工作正常)