lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Koji Miyamoto" <>
Subject extending SolrIndexSearcher
Date Tue, 09 May 2006 09:32:45 GMT

I am looking at extending the source code for SolrIndexSearcher for my own
purposes.  Basically, I am trying to replace the use of Lucene's
IndexSearcher with a ParallelMultiSearcher version so that I can have a
query search both locally available indexes as well as remote indexes
available only via RMI.  This ParallelMultiSearcher is instantiated to
consist of both local and remote Searchable references.  The local
Searchables are simply IndexSearcher instances tied to local disk (separate
indexes), while the remote Searchables are made reachable via RMI.

In essence, where it used to be:

  IndexSearcher searcher = new IndexSearcher(reader);

it is now: (not the actual code but similar)

  Searchable[] searchables = new Searchable[3];
  for (int i=0; i<2; i++) {
    // Local searchable:
    searchables[i] = new IndexSearcher("/disk" + i + "/index");

  // RMI searchable:  throws exception during search..
  searchables[2] = (Searchable) Naming.lookup

  ParallelMultiSearcher searcher = new ParallelMultiSearcher(sch);

When I build the source and use it (the short story, by replacing the
relevant class file(s) within solr.war used by the example jetty
implementation), it starts up just fine.  If I comment out the RMI
searchable line, submission of a search query to Jetty/Solr works just fine,
and it is able to search any number of indexes.  However, with the RMI
searchable uncommented out, I get an exception thrown (here's the ending of

May 9, 2006 1:38:07 AM org.apache.solr.core.SolrException log
SEVERE: java.rmi.MarshalException: error marshalling arguments; nested
exception is:$1
        at sun.rmi.server.UnicastRef.invoke(
        at org.apache.solr.request.StandardRequestHandler.handleRequest(

So it looks like it requires Serialization somehow to get it to work.
Wondering if anyone has any ideas to get around this problem.


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