/// <summary> /// Adds a new <see cref="DoubleDocValuesField"/> field with the specified 64-bit double value </summary> /// <remarks> /// Syntactic sugar for encoding doubles as <see cref="Index.NumericDocValues"/> /// via <see cref="Support.Number.DoubleToRawInt64Bits(double)"/>. /// <para/> /// Per-document double values can be retrieved via /// <see cref="Search.IFieldCache.GetDoubles(Lucene.Net.Index.AtomicReader, string, bool)"/>. /// <para/> /// <b>NOTE</b>: In most all cases this will be rather inefficient, /// requiring eight bytes per document. Consider encoding double /// values yourself with only as much precision as you require. /// </remarks> /// <param name="document">This <see cref="Document"/>.</param> /// <param name="name"> field name </param> /// <param name="value"> 64-bit double value </param> /// <returns>The field that was added to this <see cref="Document"/>.</returns> /// <exception cref="System.ArgumentNullException"> if the field name is <c>null</c> </exception> public static DoubleDocValuesField AddDoubleDocValuesField(this Document document, string name, double value) { var field = new DoubleDocValuesField(name, value); document.Add(field); return(field); }
public virtual void TestDoubleDocValuesField() { DoubleDocValuesField field = new DoubleDocValuesField("foo", 5d); TrySetBoost(field); TrySetByteValue(field); TrySetBytesValue(field); TrySetBytesRefValue(field); field.DoubleValue = 6d; // ok TrySetIntValue(field); TrySetFloatValue(field); TrySetLongValue(field); TrySetReaderValue(field); TrySetShortValue(field); TrySetStringValue(field); TrySetTokenStreamValue(field); Assert.AreEqual(6d, BitConverter.Int64BitsToDouble((long)field.NumericValue), 0.0d); }
public virtual void TestDoubleDocValuesField() { DoubleDocValuesField field = new DoubleDocValuesField("foo", 5d); TrySetBoost(field); TrySetByteValue(field); TrySetBytesValue(field); TrySetBytesRefValue(field); field.SetDoubleValue(6d); // ok TrySetIntValue(field); TrySetFloatValue(field); TrySetLongValue(field); TrySetReaderValue(field); TrySetShortValue(field); TrySetStringValue(field); TrySetTokenStreamValue(field); Assert.AreEqual(6d, J2N.BitConversion.Int64BitsToDouble(field.GetInt64Value().Value), 0.0d); }
public virtual void TestDoubleDocValuesField() { DoubleDocValuesField field = new DoubleDocValuesField("foo", 5d); TrySetBoost(field); TrySetByteValue(field); TrySetBytesValue(field); TrySetBytesRefValue(field); field.DoubleValue = 6d; // ok TrySetIntValue(field); TrySetFloatValue(field); TrySetLongValue(field); TrySetReaderValue(field); TrySetShortValue(field); TrySetStringValue(field); TrySetTokenStreamValue(field); Assert.AreEqual(6d, BitConverter.Int64BitsToDouble((long)field.NumericValue), 0.0d); }