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

Index Writer constructor flags unclear - and annoying in certain cases

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 2.1
    • Component/s: core/index
    • Labels:
      None
    • Environment:

      Operating System: other
      Platform: Other

    • Bugzilla Id:
      32088

      Description

      Wouldn't it make more sense if the constructor for the IndexWriter always
      created an index if it doesn't exist - and the boolean parameter should be
      "clear" (instead of "create")

      So instead of this (from javadoc):

      IndexWriter

      public IndexWriter(Directory d,
      Analyzer a,
      boolean create)
      throws IOException

      Constructs an IndexWriter for the index in d. Text will be analyzed with a.
      If create is true, then a new, empty index will be created in d, replacing the
      index already there, if any.

      Parameters:
      d - the index directory
      a - the analyzer to use
      create - true to create the index or overwrite the existing one; false to
      append to the existing index
      Throws:
      IOException - if the directory cannot be read/written to, or if it does not
      exist, and create is false

      We would have this:

      IndexWriter

      public IndexWriter(Directory d,
      Analyzer a,
      boolean clear)
      throws IOException

      Constructs an IndexWriter for the index in d. Text will be analyzed with a.
      If clear is true, and a index exists at location d, then it will be erased, and
      a new, empty index will be created in d.

      Parameters:
      d - the index directory
      a - the analyzer to use
      clear - true to overwrite the existing one; false to append to the existing
      index
      Throws:
      IOException - if the directory cannot be read/written to, or if it does not
      exist.

      Its current behavior is kind of annoying, because I have an app that should
      never clear an existing index, it should always append. So I want create set to
      false. But when I am starting a brand new index, then I have to change the
      create flag to keep it from throwing an exception... I guess for now I will
      have to write code to check if a index actually has content yet, and if it
      doesn't, change the flag on the fly.

        Attachments

          Activity

            People

            • Assignee:
              mikemccand Michael McCandless
              Reporter:
              armbrust Dan Armbrust
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: