lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Kor <s0454...@sms.ed.ac.uk>
Subject Re: MultiSearcher GUI? Before/After query?
Date Wed, 18 May 2005 23:09:42 GMT
Quoting Andrzej Bialecki <ab@getopt.org>:

> Regarding Luke - actually, it would not be so difficult to implement
> this (at least for me ;-) ). Save for some minor exceptions, Luke opens
> an IndexReader once, and I could add another version of the Open dialog
> to use open multiple indexes.
>
> (I can't promise, however, to do it quickly - I'm finalizing a couple of
> projects now, so this has to wait a bit...)

No worries, I figured it out. You see, I have already written the following two
methods that would recursively search a base directory for lucene indexes, and
then automatically return either an IndexSearcher or MultiSearcher depending on
how many indexes were found. I just need to make a pair of similar methods for
creating Readers and I'm done.

public Searcher getSearcher(String path) throws IOException {
  ArrayList searchers = getSearcherImpl(new File(path), new ArrayList());

  if (searchers.size() == 0) return null;
  else if (searchers.size() == 1) return (Searcher)searchers.get(0);
  else {
    Searcher array[] = new Searcher[searchers.size()];
    System.out.println("Creating MultiSearcher (" + array.length + ")");
    array = (Searcher[])searchers.toArray(array);
    return new MultiSearcher(array);
  }
}

protected ArrayList getSearcherImpl(File file, ArrayList searchers) throws
IOException {
  if (file.isDirectory()) {
    File files[] = file.listFiles();

    for (int i = 0; i < files.length; i++) {
      if (files[i].isDirectory()) {
        searchers = getSearcherImpl(files[i], searchers);
      }
      else if (files[i].getName().equalsIgnoreCase("segments")) {
        System.out.println("Index Found: " + file.getPath());
        searchers.add(new IndexSearcher(file.getPath()));
      }
    }

  }
  return searchers;
}


---------------------------------------------------------------------
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