You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Thomas Lepkowski <th...@gmail.com> on 2005/08/26 22:31:50 UTC

index files in jar file

Hello,

I have a set of index files that I'd like to distribute with my Java 
application. The only way this seems practical is to place the index files 
in a jar file. I tries this, but the search choked when I told IndexSearcher 
the index path inside the jar file ( and placed the jar file in the 
CLASSPATH.

Anybody out there successfully put their index files in a jar file?

Thanks in advance for any advise.

-Tom

Re: index files in jar file

Posted by Miles Barr <mi...@runtime-collective.com>.
On Fri, 2005-08-26 at 16:31 -0400, Thomas Lepkowski wrote:
> I have a set of index files that I'd like to distribute with my Java 
> application. The only way this seems practical is to place the index files 
> in a jar file. I tries this, but the search choked when I told IndexSearcher 
> the index path inside the jar file ( and placed the jar file in the 
> CLASSPATH.
> 
> Anybody out there successfully put their index files in a jar file?
> 
> Thanks in advance for any advise.

I haven't but I have an idea of how you would. What path did you give
IndexSearcher? Did you use the IndexSearcher(String) constructor? 

I don't think there's any chance you could load an index from a JAR file
out of the box. First a JAR file is zipped, secondly you'll look it up
from the classpath rather than giving a file system path. 

I would guess you need to extend:

org.apache.lucene.store.Directory

and create a JARDirectory class, which can find the appropriate bits
within the JAR for Lucene. 

First get the JAR file:

ClassLoader.getSystemResourceAsStream(jarFilename)

then use the java.util.jar.JarInputStream class to read it.

One potential problem might be random access, since I think streams are
sequentially accessed. If the index isn't too big you could have your
JARDirectory class just wrap a RAMDirectory and just load the contents
of the JAR into memory.



-- 
Miles Barr <mi...@runtime-collective.com>
Runtime Collective Ltd.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org