Hi all ! I need a new feature in solr : to allow the configuration of the IndexSearcher class in the schema configuration to override the lucene IndexSearcher . I noticed that there's only one point in the code where the searcher is built:
<code> in org/apache/solr/search/SolrIndexSearcher.java: private SolrIndexSearcher(IndexSchema schema, String name, IndexReader r, boolean closeReader, boolean enableCache) { this.schema = schema; this.name = "Searcher@" + Integer.toHexString(hashCode()) + (name!=null ? " "+name : ""); log.info("Opening " + this.name); reader = r; /****** HERE *********/ searcher = new IndexSearcher(r); </code> I'd like to allow a new tag in the schema : <schema name="..." version="1.1"> <luceneIndexSearcher class="com.acme.lucene.searcher.MyOwnSearcher" /> .... </schema> I dont exactly know what is the best way to do it. I was think of: * In IndexSchema: implement a method String getLuceneIndexSearcherClassName() * In SolrIndexSearcher in private SolrIndexSearcher: String idxSearcherClassName = schema.getLuceneIndexSearcherClassName() // Then load the class itself // Then build a new instance of this class with the IndexReader r What solr special class loader and instance builder do I have to use to do the last two operation ? Can I use directly : Class idxSearcherClass = Config.findClass(idxSearcherClassName) and then build a idxSearcher by using the standard java.lang.Class methods ? Am I in the right and does it fit with the solr architecture to do that ? I'd be perfectly happy to implement that and submit a patch. Thanks for your comments and answers. Jerome -- Jerome Eteve. [EMAIL PROTECTED] http://jerome.eteve.free.fr/