Lucene:如何从索引中获取LongField

时间:2013-07-08 09:56:28

标签: java lucene search-engine

我在索引中添加了 LongField

方法

IndexSearcher.doc() 

返回一个文档,其中所有字段都是

  

org.apache.lucene.document.Field org.apache.lucene.document.StoredField

如何从索引中获取具有相同字段类型的文档。因此,我将此文档复制到具有相同字段类型的另一个索引。

1 个答案:

答案 0 :(得分:1)

最后,我找到了另一种方法IndexSearcher.doc(int, StoredFieldVisitor)(我正在使用lucene 4.3)

  

并创建自定义StoredFieldVisitor

public class StaySameFieldVisitor extends DocumentStoredFieldVisitor {
@Override
public void intField(FieldInfo fieldInfo, int value) {
    getDocument().add(new IntField(fieldInfo.name, value, Store.YES));
}

@Override
public void longField(FieldInfo fieldInfo, long value) {
    getDocument().add(new LongField(fieldInfo.name, value, Store.YES));
}

@Override
public void doubleField(FieldInfo fieldInfo, double value) {
    getDocument().add(new DoubleField(fieldInfo.name, value, Store.YES));
}

@Override
public void floatField(FieldInfo fieldInfo, float value) {
    getDocument().add(new FloatField(fieldInfo.name, value, Store.YES));
}

}