Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.4
-
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.