Skip to content

Make TokenStream Reuse Mandatory for Analyzers [LUCENE-3396] #4469

@asfimport

Description

@asfimport

In #3385 it became clear that we'd benefit a lot from Analyzer having to return reusable TokenStreams. This is a big chunk of work, but its time to bite the bullet.

I plan to attack this in the following way:

  • Collapse the logic of ReusableAnalyzerBase into Analyzer
  • Add a ReuseStrategy abstraction to Analyzer which controls whether the TokenStreamComponents are reused globally (as they are today) or per-field.
  • Convert all Analyzers over to using TokenStreamComponents. I've already seen that some of the TokenStreams created in tests need some work to be reusable (even if they aren't reused).
  • Remove Analyzer.reusableTokenStream and convert everything over to using .tokenStream (which will now be returning reusable TokenStreams).

Migrated from LUCENE-3396 by Chris Male, resolved Nov 14 2011
Attachments: LUCENE-3396-forgotten.patch, LUCENE-3396-rab.patch (versions: 7), LUCENE-3396-remaining-analyzers.patch, LUCENE-3396-remaining-merging.patch
Linked issues:

Sub-tasks:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions