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

Index Writer constructor flags unclear - and annoying in certain cases

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.4
    • 2.1
    • core/index
    • None
    • Operating System: other
      Platform: Other

    • 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

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

            Dates

              Created:
              Updated:
              Resolved: