one mistake in this code
should be
   infos.counter = ++counter;
instead of
   infos.counter = counter++;

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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
regards,
Volodymyr Bychkoviak


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to