2017-02-27 81 views
3

在Lucene的6,LongFieldIntField已更名为LegacyLongFieldLegacyIntField的方式来存储与术语词汇数字领域,具有JavaDoc的建议弃用使用LongPoint而不是IntPoint类。Lucene的6 - 推荐

但是,似乎不可能建立这些XPoint字段的术语词汇表(=枚举所有不同的值)。 Lucene mailing list entry确认它

PointFields不同于传统的反转字段,所以它们也不会显示在fields()中。你不能从他们那里得到一个词典词典。

作为第三种选择,可以添加类NumericDocValuesField的领域,据我所知,也没有提供长期建设词汇量的方法。

鉴于构建术语词汇表的要求,在Lucene 6中是否有索引数字字段的非弃用方式?

+0

嗨,它似乎相同的问题[这里](http://lucene.472066.n3.nabble.com/Lucene-6-Recommended-way-to-store-numeric-values-given-the-need-to- form-term-vocabulary-td4322831.html),你有没有发现任何事情? –

回答

0

在我的情况下,我只是将字段复制一次作为长点,一次作为存储的非索引字段同名的两个字段。

在我的情况

大致是

doc.add(new NumericDocValuesField("ts", timestamp.toEpochMilli())); 
doc.add(new LongPoint("ts", timestamp.toEpochMilli())); 
doc.add(new StoredField("ts", timestamp.toEpochMilli())); 

它是丑了一点,但认为它是添加索引到存储领域。 这些字段类型可以使用相同的名称而不会产生干扰。

用于基于文档年龄的评分的DocValues和用于范围查询的LongPoint。