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

Optimized iteration of finite strings

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 5.0
    • 5.3, 6.0
    • core/other
    • New, Patch Available

    Description

      Replaced Operations.getFiniteStrings() by an optimized FiniteStringIterator.

      Benefits:
      Avoid huge hash set of finite strings.
      Avoid massive object/array creation during processing.

      "Downside":
      Iteration order changed, so when iterating with a limit, the result may differ slightly. Old: emit current node, if accept / recurse. New: recurse / emit current node, if accept.

      The old method Operations.getFiniteStrings() still exists, because it eases the tests. It is now implemented by use of the new FiniteStringIterator.

      Attachments

        1. LUCENE-6365.patch
          56 kB
          Michael McCandless
        2. FiniteStrings_reuse.patch
          58 kB
          Markus Heiden
        3. FiniteStrings_noreuse.patch
          57 kB
          Markus Heiden

        Activity

          People

            Unassigned Unassigned
            markus_heiden Markus Heiden
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: