lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: DiskDocValuesFormat
Date Sun, 14 Apr 2013 21:40:59 GMT
If you create a single JAR file out of multiple Lucene JAR files use a tool like Maven Shade
plugin, otherwise, required metadata propreties (META-INF/services) files in the JAR files
are not correctly merged together.

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: Wei Wang [mailto:welshwang@gmail.com]
> Sent: Sunday, April 14, 2013 11:30 PM
> To: java-user@lucene.apache.org
> Subject: Re: DiskDocValuesFormat
> 
> Hi Adrien,
> 
> The Lucene42Codec works well to generate the index with
> DiskDocValuesFormat. But when I tried to merge the index segments by
> calling:
> 
> IndexWriter iw = new IndexWriter(directory, iw_config); ...
> iw.forceMerge(1);
> 
> I got the following error message:
> 
> Caused by: java.lang.IllegalArgumentException: A SPI class of type
> org.apache.lucene.codecs.DocValuesFormat with name 'Disk' does not exist.
> You need to add the corresponding JAR file supporting this SPI to your
> classpath.The current classpath supports the following names: [Lucene42]
> 
> Any hint on this classpath problem? I have created a single jar file that has all
> necessary dependencies, such as lucene-codecs-4.2.0.jar. And I assume the
> indexing step works well, so Lucene already knows the format with name
> 'Disk'.
> 
> Thanks.
> 
> On Sat, Apr 13, 2013 at 4:25 AM, Adrien Grand <jpountz@gmail.com> wrote:
> 
> > Hi Wei,
> >
> > On Sat, Apr 13, 2013 at 7:44 AM, Wei Wang <welshwang@gmail.com>
> wrote:
> > > I am trying to use DiskDocValuesFormat for a particular
> > > BinaryDocValuesField. It seems there is no good examples showing how
> > > to
> > do
> > > this. The only hint I got from various docs and forums is set some
> > > codec
> > in
> > > IndexWriter. Could someone give a few lines of code snippet and show
> > > how
> > to
> > > set DiskDocValuesFormat?
> >
> > Lucene42Codec can be extended to specify the doc values format to use
> > on a per-field basis. For example:
> >
> > final Codec codec = new Lucene42Codec() {
> >   final Lucene42DocValuesFormat memoryDVFormat = new
> > Lucene42DocValuesFormat();
> >   final DiskDocValuesFormat diskDVFormat = new DiskDocValuesFormat();
> >   @Override
> >   public DocValuesFormat getDocValuesFormatForField(String field) {
> >     if ("dv_mem".equals(field)) {
> >       // use Lucene42 for "dv_mem"
> >       return memoryDVFormat;
> >     } else {
> >       // use Disk otherwise
> >       return diskDVFormat;
> >     }
> >   }
> > };
> >
> > Then just pass this Codec instance to your IndexWriterConfig.
> >
> > --
> > Adrien
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> >
> >


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


Mime
View raw message