簡體   English   中英

Lucene:如何從索引中獲取LongField

[英]Lucene : How to get LongField from index

我將LongField添加到索引中。

方法

IndexSearcher.doc() 

返回一個文檔,其中所有字段都是

org.apache.lucene.document.Fieldorg.apache.lucene.document.StoredField

如何從索引中獲取與我輸入的字段類型相同的文檔。 因此,然后將此文檔復制到具有相同字段類型的另一個索引。

最后,我找到了另一個方法IndexSearcher.doc(int, StoredFieldVisitor) (我正在使用IndexSearcher.doc(int, StoredFieldVisitor) 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));
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM