Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-1470

Add TrieRangeFilter to contrib

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.4
    • 2.9
    • modules/other
    • None
    • New, Patch Available

    Description

      According to the thread in java-dev (http://www.gossamer-threads.com/lists/lucene/java-dev/67807 and http://www.gossamer-threads.com/lists/lucene/java-dev/67839), I want to include my fast numerical range query implementation into lucene contrib-queries.

      I implemented (based on RangeFilter) another approach for faster
      RangeQueries, based on longs stored in index in a special format.

      The idea behind this is to store the longs in different precision in index
      and partition the query range in such a way, that the outer boundaries are
      search using terms from the highest precision, but the center of the search
      Range with lower precision. The implementation stores the longs in 8
      different precisions (using a class called TrieUtils). It also has support
      for Doubles, using the IEEE 754 floating-point "double format" bit layout
      with some bit mappings to make them binary sortable. The approach is used in
      rather big indexes, query times are even on low performance desktop
      computers <<100 ms for very big ranges on indexes with 500000 docs.

      I called this RangeQuery variant and format "TrieRangeRange" query because
      the idea looks like the well-known Trie structures (but it is not identical
      to real tries, but algorithms are related to it).

      Attachments

        1. LUCENE-1470-apichange.patch
          8 kB
          Uwe Schindler
        2. LUCENE-1470-revamp.patch
          153 kB
          Uwe Schindler
        3. LUCENE-1470-revamp.patch
          149 kB
          Uwe Schindler
        4. LUCENE-1470-revamp.patch
          115 kB
          Uwe Schindler
        5. trie.zip
          9 kB
          Uwe Schindler
        6. TrieUtils.java
          13 kB
          Yonik Seeley
        7. TrieUtils.java
          11 kB
          Uwe Schindler
        8. TrieRangeFilter.java
          11 kB
          Uwe Schindler
        9. TrieUtils.java
          9 kB
          Uwe Schindler
        10. TrieUtils.java
          8 kB
          Uwe Schindler
        11. TrieUtils.java
          3 kB
          Yonik Seeley
        12. LUCENE-1470-readme.patch
          2 kB
          Uwe Schindler
        13. fixbuild-LUCENE-1470.patch
          2 kB
          Uwe Schindler
        14. fixbuild-LUCENE-1470.patch
          0.7 kB
          Uwe Schindler
        15. LUCENE-1470.patch
          56 kB
          Uwe Schindler
        16. LUCENE-1470.patch
          56 kB
          Uwe Schindler
        17. LUCENE-1470.patch
          51 kB
          Uwe Schindler
        18. LUCENE-1470.patch
          48 kB
          Uwe Schindler
        19. LUCENE-1470.patch
          40 kB
          Uwe Schindler
        20. LUCENE-1470.patch
          39 kB
          Uwe Schindler
        21. LUCENE-1470.patch
          32 kB
          Uwe Schindler

        Issue Links

          Activity

            People

              uschindler Uwe Schindler
              uschindler Uwe Schindler
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: