java - 卢塞恩 : How to get LongField from index

标签 java lucene search-engine

我在索引中添加了一个LongField

方法

IndexSearcher.doc() 

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

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

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

最佳答案

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

And create a custom 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));
}

}

关于java - 卢塞恩 : How to get LongField from index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523781/

相关文章:

algorithm - 如何按位置和日期范围高效搜索大型数据集?

ruby-on-rails - 如何阻止谷歌搜索链接到 https?

java - 并发访问对 HashSet 的影响

java - 所需的字符串参数 'foodId' 不存在

c# - 2013年度最佳Lucene搜索平台 : Solr or ElasticSearch?

performance - 如何加速 Elasticsearch 恢复?

seo - 谷歌站点地图

java - ByteBuffer 索引减一

java - 为什么 map 变换是窄的?

java - KeywordAnalyzer 和 LowerCaseFilter/LowerCaseTokenizer