2017-02-27 87 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。