2017-07-05 13 views
0

私はLuceneのドキュメントで数値フィールドを保管する必要がありますが、LuceneのはNumericFieldの署名が似ている6.5.1保管数値は6.5.0

NumericDocValuesField(文字列名、long値)

古いLuceneのバージョンでは、この方法は次のようである、

NumericField(文字列、Field.Store、ブーリアン)

。 誰かがlucene6.5.1を使って数値を文書に保存する方法を教えてもらえますか?

よろしく、
ラガバン

答えて

2

NumericDocValuesFieldは、スコアリングのために使用されている/だけソート: http://lucene.apache.org/core/6_5_0/core/org/apache/lucene/document/NumericDocValuesField.html

あなたがStoredFieldを使用する必要があります(数値を含む)の値のいずれかの種類を保存したい場合: https://lucene.apache.org/core/6_5_0/core/org/apache/lucene/document/StoredField.html

必要に応じて、複数のフィールドを複数の目的で追加する必要があります。あなたは限り数値を持っていて、範囲クエリをしたいとソートあなたはこのような何かをしたい場合:

// for range queries 
new LongPoint(field, value); 
// for storing the value 
new StoredField(field, value); 
// for sorting/scoring 
new NumericDocValuesField(field, value); 
0

使用特殊なタイプ指向の数値フィールド:

IntField intField = new IntField("int_value", 100, Field.Store.YES); 
LongField longField = new LongField("long_value", 100L, Field.Store. 
YES); 
FloatField floatField = new FloatField("float_value", 100.0F, Field. 
Store.YES); 
DoubleField doubleField = new DoubleField("double_value", 100.0D, 
Field.Store.YES); 
あなたはそれらの値を格納することができます

必要に応じてソートしてください。これらのフィールドはすべてインデックス可能です。

+1

このフィールドタイプは廃止された従来のフィールドです。 LegacyIntFieldと同様です。私はこれを使用しないことをお勧めします。 – dom