Class LegacyDoubleField
- java.lang.Object
- 
- org.apache.lucene.document.Field
- 
- org.apache.solr.legacy.LegacyField
- 
- org.apache.solr.legacy.LegacyDoubleField
 
 
 
- 
- All Implemented Interfaces:
- org.apache.lucene.index.IndexableField
 
 @Deprecated public final class LegacyDoubleField extends LegacyField Deprecated.Please useDoublePointinsteadField that indexesdoublevalues for efficient range filtering and sorting. Here's an example usage:document.add(new LegacyDoubleField(name, 6.0, Field.Store.NO)); For optimal performance, re-use theLegacyDoubleFieldandDocumentinstance for more than one document:LegacyDoubleField field = new LegacyDoubleField(name, 0.0, Field.Store.NO); Document document = new Document(); document.add(field); for(all documents) { ... field.setDoubleValue(value) writer.addDocument(document); ... }See alsoLegacyIntField,LegacyLongField,LegacyFloatField.To perform range querying or filtering against a LegacyDoubleField, useLegacyNumericRangeQuery. To sort according to aLegacyDoubleField, use the normal numeric sort types, egSortField.Type.DOUBLE.LegacyDoubleFieldvalues can also be loaded directly fromLeafReader.getNumericDocValues(java.lang.String).You may add the same field name as an LegacyDoubleFieldto the same document more than once. Range querying and filtering will be the logical OR of all values; so a range query will hit all documents that have at least one value in the range. However sort behavior is not defined. If you need to sort, you should separately index a single-valuedLegacyDoubleField.A LegacyDoubleFieldwill consume somewhat more disk space in the index than an ordinary single-valued field. However, for a typical index that includes substantial textual content per document, this increase will likely be in the noise.Within Lucene, each numeric value is indexed as a trie structure, where each term is logically assigned to larger and larger pre-defined brackets (which are simply lower-precision representations of the value). The step size between each successive bracket is called the precisionStep, measured in bits. SmallerprecisionStepvalues result in larger number of brackets, which consumes more disk space in the index but may result in faster range search performance. The default value, 16, was selected for a reasonable tradeoff of disk space consumption versus performance. You can create a customLegacyFieldTypeand invoke theLegacyFieldType.setNumericPrecisionStep(int)method if you'd like to change the value. Note that you must also specify a congruent value when creatingLegacyNumericRangeQuery. For low cardinality fields larger precision steps are good. If the cardinality is < 100, it is fair to useInteger.MAX_VALUE, which produces one term per value.For more information on the internals of numeric trie indexing, including the precisionStepconfiguration, seeLegacyNumericRangeQuery. The format of indexed values is described inLegacyNumericUtils.If you only need to sort by numeric value, and never run range querying/filtering, you can index using a precisionStepofInteger.MAX_VALUE. This will minimize disk space consumed.More advanced users can instead use LegacyNumericTokenStreamdirectly, when indexing numbers. This class is a wrapper around this token stream type for easier, more intuitive usage.- Since:
- 2.9
 
- 
- 
Field SummaryFields Modifier and Type Field Description static LegacyFieldTypeTYPE_NOT_STOREDDeprecated.Type for a LegacyDoubleField that is not stored: normalization factors, frequencies, and positions are omitted.static LegacyFieldTypeTYPE_STOREDDeprecated.Type for a stored LegacyDoubleField: normalization factors, frequencies, and positions are omitted.
 - 
Constructor SummaryConstructors Constructor Description LegacyDoubleField(String name, double value, org.apache.lucene.document.Field.Store stored)Deprecated.Creates a stored or un-stored LegacyDoubleField with the provided value and defaultprecisionStepLegacyNumericUtils.PRECISION_STEP_DEFAULT(16).LegacyDoubleField(String name, double value, LegacyFieldType type)Deprecated.Expert: allows you to customize theLegacyFieldType.
 - 
Method Summary- 
Methods inherited from class org.apache.solr.legacy.LegacyFieldsetTokenStream, tokenStream
 - 
Methods inherited from class org.apache.lucene.document.FieldbinaryValue, fieldType, getCharSequenceValue, invertableType, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, storedValue, stringValue, tokenStreamValue, toString
 
- 
 
- 
- 
- 
Field Detail- 
TYPE_NOT_STOREDpublic static final LegacyFieldType TYPE_NOT_STORED Deprecated.Type for a LegacyDoubleField that is not stored: normalization factors, frequencies, and positions are omitted.
 - 
TYPE_STOREDpublic static final LegacyFieldType TYPE_STORED Deprecated.Type for a stored LegacyDoubleField: normalization factors, frequencies, and positions are omitted.
 
- 
 - 
Constructor Detail- 
LegacyDoubleFieldpublic LegacyDoubleField(String name, double value, org.apache.lucene.document.Field.Store stored) Deprecated.Creates a stored or un-stored LegacyDoubleField with the provided value and defaultprecisionStepLegacyNumericUtils.PRECISION_STEP_DEFAULT(16).- Parameters:
- name- field name
- value- 64-bit double value
- stored- Store.YES if the content should also be stored
- Throws:
- IllegalArgumentException- if the field name is null.
 
 - 
LegacyDoubleFieldpublic LegacyDoubleField(String name, double value, LegacyFieldType type) Deprecated.Expert: allows you to customize theLegacyFieldType.- Parameters:
- name- field name
- value- 64-bit double value
- type- customized field type: must have- LegacyFieldType.numericType()of- LegacyNumericType.DOUBLE.
- Throws:
- IllegalArgumentException- if the field name or type is null, or if the field type does not have a DOUBLE numericType()
 
 
- 
 
-