lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Volodymyr Bychkoviak <vbychkov...@i-hypergrid.com>
Subject Re: obtaining the number of documents stored in a .cfs file
Date Wed, 06 Sep 2006 07:30:30 GMT
One more note:
this should be in package 'org.apache.lucene.index;' because it uses 
some package visible classes :)

Volodymyr Bychkoviak wrote:
> I've used following code to recover index. Note: it only works with 
> .cfs files.
>
>
>    String path = // path to index
>    File file = new File(path);
>    Directory directory = FSDirectory.getDirectory(file, false);
>
>    String[] files = file.list(new FilenameFilter() {
>
>      public boolean accept(File dir, String name) {
>        return name.endsWith(".cfs");
>      }
>
>    });
>      SegmentInfos infos = new SegmentInfos();
>    int counter = 0;
>    for (int i = 0; i < files.length; i++) {
>      String fileName = files[i];
>      String segmentName = fileName.substring(1, 
> fileName.lastIndexOf('.'));
>          int segmentInt = 
> Integer.parseInt(segmentName,Character.MAX_RADIX);
>      counter = Math.max(counter, segmentInt);
>          segmentName = fileName.substring(0, fileName.lastIndexOf('.'));
>          Directory fileReader = new 
> CompoundFileReader(directory,fileName);
>      IndexInput indexStream = fileReader.openInput(segmentName + ".fdx");
>      int size = (int)(indexStream.length() / 8);
>      indexStream.close();
>      fileReader.close();
>          SegmentInfo segmentInfo = new 
> SegmentInfo(segmentName,size,directory);
>      infos.addElement(segmentInfo);
>    }
>
>    infos.counter = counter++;
>      infos.write(directory);
>
> Stanislav Jordanov wrote:
>> Suppose I have a bunch of valid .cfs files while the 
>> segmens/segments.new file is missing or invalid.
>> The task is to 'recover' the present .cfs files into a valid index.
>> I think it will be necessary and sufficient to create a segments file 
>> that references the .cfs files.
>> The only problem I've encountered in generating a vaild and 
>> well-formed segments file is that I need to know the number of docs 
>> in each cfs file.
>> So the couple of questions is:
>> Do I have to put the right number of docs for each segments or any 
>> (dummy) number will do?
>> If I have to put the right number there, how do I get it having the 
>> cfs file?
>>
>> Stanislav
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>

-- 
regards,
Volodymyr Bychkoviak


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message