I'd say, if a common public method for all Directory implementation
helps you, try it out by modifying the sources locally, and if you are
happy with it, submit the patch.
I've always just used String references to directories where my indices
were, so I never needed this common method.
Otis
--- Leslie Hughes [EMAIL PROTECTED] wrote:
Hi Otis, Thanks for the reply.
My DirectoryImpl is configurable in a config file so I dynamically
instantiate whatever's listed there. Because of the private
constructor in
FSDir and the lack of getDirectory on the interface, I'm having to do
:-
try{
//Make an FSDir if it's one of those
return (Directory)Class.forName(myDefaultDirectoryImpl)
.getMethod(getDirectory, new Class[] {String.class,
boolean.class})
.invoke(null, new Object[]{myDefaultIndex, new
Boolean(false)});
}catch(Exception ioe) { }
Which I think is rather funky :-) but some would say not very
clean
Anyway adding a getDirectory to the Directory class would be rather
neat
then I could use the above for all dirs - this doesn't work with
RAMDir or
DBDir at the moment of course - and wrap the whole lot into a
DirectoryFactory+config.xml file.
On the other point, I've decided to go with creating the new index
via the
writer - no real reason, just couldn't see why not :-)
Bye
Les
-Original Message-
From: Otis Gospodnetic [SMTP:[EMAIL PROTECTED]
Sent: Tuesday, June 10, 2003 3:02 PM
To: Lucene Users List
Subject:Re: IndexWriter and Directory create param
Hello Les,
Directory dir = FSDirectory.getDirectory(myindex, true);
IndexWriter writer = new IndexWriter(dir, myAnalyser, true);
which gives me a nice clean index. But what if the create params
are
different? If I open a directory with create=false then create a
writer on it with create = true will this give problems?
If I understand you correctly, then the answer is: no, this should
not
cause problems. You could easily try that, no?
Maybe I should do something like
boolean flag = true/false;
Directory dir = FSDirectory.getDirectory(myindex, flag);
IndexWriter writer = new IndexWriter(dir, myAnalyser, false);
I've seen people use code like that.
Whilst I'm on the subject, there doesn't appear to be a standard
way
of creating a Directory, FSDir has a getDirectory whilst RAMDir
uses
a
constructor - shouldn't there be a standard method on the
Directory
interface (like there is with close)? Or maybe a configurable
DirectoryFactory?
Perhaps. Directory is an abstract class. One could add an
abstract
open(...) method, maybe. I don't have a need for it...
Otis
__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]