2017-03-07 9 views
1

私は完全なLuceneの初心者ですので、この質問はあまりにも基本的な場合は申し訳ありません。グーグルは助けにはならなかった。私は5にLuceneの2を移行するためにいくつかのコードを持っている古いコードのように文書を扱う -Lucene 6 IntFieldsを追加

Document doc = new Document(); 
doc.add(new StringField("id", "id1", Field.Store.YES)); 
doc.add(new IntField("numBooks",10,Field.Store.YES)); 
... 

新しいLuceneにはもうIntFieldsを持っていません。それらを処理する最良の方法は何ですか? NumericDocValuesFieldがありますが、これにはField.Storeパラメータがありません。何が最高の 'フィールド'タイプを使用するのですか?

答えて

2

IntFieldのような数値フィールドは、IntPointのようなPointValuesフィールドに置き換えられました。

doc.add(new IntPoint("numBooks",10)); 
doc.add(new StoredField("numBooks", 10)); 

詳細についてはMigration Guideを参照してください:ドキュメントで述べたように、あなたがそれを保存する必要がある場合は、別のStoredFieldインスタンスを追加する必要があります。

+0

なぜ、IntPointとStoredFieldを別々に呼び出すのですが、私たちが書いているコードの量が倍増しているだけですか? – user2689782

+0

これはAPIが指定しているためですか?それが気になる場合は、便利な方法を書いてください。 – femtoRgon

関連する問題