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

Decouple indexer from Document/Field impls

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0-ALPHA
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      I think we should define minimal iterator interfaces,
      IndexableDocument/Field, that indexer requires to index documents.

      Indexer would consume only these bare minimum interfaces, not the
      concrete Document/Field/FieldType classes from oal.document package.

      Then, the Document/Field/FieldType hierarchy is one concrete impl of
      these interfaces. Apps are free to make their own impls as well.
      Maybe eventually we make another impl that enforces a global schema,
      eg factored out of Solr's impl.

      I think this frees design pressure on our Document/Field/FieldType
      hierarchy, ie, these classes are free to become concrete
      fully-featured "user-space" classes with all sorts of friendly sugar
      APIs for adding/removing fields, getting/setting values, types, etc.,
      but they don't need substantial extensibility/hierarchy. Ie, the
      extensibility point shifts to IndexableDocument/Field interface.

      I think this means we can collapse the three classes we now have for a
      Field (Fieldable/AbstracField/Field) down to a single concrete class
      (well, except for LUCENE-2308 where we want to break out dedicated
      classes for different field types...).

        Attachments

        1. LUCENE-3177.patch
          67 kB
          Michael McCandless
        2. LUCENE-3177.patch
          70 kB
          Michael McCandless

          Issue Links

            Activity

              People

              • Assignee:
                mikemccand Michael McCandless
                Reporter:
                mikemccand Michael McCandless
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: