[ http://issues.apache.org/jira/browse/LUCENE-301?page=comments#action_12366834 ]
Hoss Man commented on LUCENE-301: --------------------------------- >The only change (and I consider it an improvment, and unlikely to break anyones >code) is that if it is set to false, and no index exists yet, then it will >create a new empty index at the specified location. ...that could be very bad for tools/apps that wantto update an existing index after reading the directory path from user input or configs when the user makes a typo. In the past "new IndexWriter(d,a,false) would throw an Exception indicating a problem, with the change you describe it would happily make a new index. I'd be happy to see a more explict API with more options about what you want IndexWRiter to do if/when the directory does'doesn't exist ... but it should be 100% backwards compatible. deprecating this constructor but leaving it alone and adding a new one with more options seems like a much safer approach. > Index Writer constructor flags unclear - and annoying in certain cases > ---------------------------------------------------------------------- > > Key: LUCENE-301 > URL: http://issues.apache.org/jira/browse/LUCENE-301 > Project: Lucene - Java > Type: Improvement > Components: Index > Versions: 1.4 > Environment: Operating System: other > Platform: Other > Reporter: Dan Armbrust > Assignee: Lucene Developers > Priority: Minor > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]