Thanks shawn for the explanation and for the example, that helps to understand it quite easily.
With Regards Aman Tandon On Fri, Jun 6, 2014 at 3:48 AM, Shawn Heisey <s...@elyograg.org> wrote: > On 6/5/2014 3:39 PM, Aman Tandon wrote: > > Thanks to all. > > And as Solr provides the field datatype as int as well as > solr.TrieIntField > > so which one is more better? > > The example has "int" and "tint" as two different types that both use > TrieIntField. The difference between the two is the precisionStep value. > > The "int" type has a precisionStep of zero, which basically turns off > that feature and results in only one value (the actual number) in the > index. This is the most efficient in terms of space, and the type you > should be using if you do not need range queries. > > The "tint" type has a precisionStep of 8, which means that it will store > additional values in the index at lower precisions, in 8 bit > increments. This can greatly speed up range queries as described in the > Javadoc for this Lucene class: > > > https://lucene.apache.org/core/4_8_1/core/org/apache/lucene/search/NumericRangeQuery.html > > This javadoc is fairly technical and honestly doesn't explain it well. > The following excerpt from the full paper by Uwe Schindler does a > reasonably good job of explaining how it works. This example has a > base-10 precisionStep of one digit, whereas the Lucene implementation > has a precisionStep defined in terms of base-2 digits (bits). > > https://www.dropbox.com/s/7996yacdxv56ehd/trie-explanation.png > > Thanks, > Shawn > >