Hi all, I'm kind of struggling with a customized lucene.Scorer of mine, since I use solr 1.4.
Here's the problem: I wrote a DocSetQuery which inherit from a lucene.Query. This query is a decorator for a lucene.Query that filters out the documents which are not in a given set of predefined documents (a solr.DocSet which I call docset ). So In my Weight / Scorer, I implemented the method nextDoc like that: public int nextDoc() throws IOException { do { if (decoScorer.nextDoc() == NO_MORE_DOCS) { return NO_MORE_DOCS; } // DO THIS UNTIL the doc is in the docset } while (!docset.exists(decoScorer.docID())); return decoScorer.docID(); } The decoScorer here is the decorated scorer. My problem here is that in docset, there are 'absolute' documents IDs, but now solr uses a number of sub readers each with a kind of offset, so decoScorer.docID() gives 'relative' document ID . Because of this, I happen to test relative document IDs against a set of absolute docIDs. So my DocSetQuery does not work anymore. The solution would be I think to have a way of getting the offset of the SolrReader being used in the context to be able to do docset.exists(decoScorer.docID() + offset) . But how can I get this offset? The scorer is built with a lucene.IndexReader in parameter: public Scorer scorer(IndexReader reader) . Within solr, this IndexReader happens to be an instance of SolrIndexReader so I though maybe I could downcast reader to a SolrIndexReader to be able to call the offset related methods on it (getBase() etc...). I feel quite unconfortable with this solution since my DocSetQuery inherits from a lucene thing, so it would be quite odd to downcast something to a solr class inside it, plus I didn't really figured out how to use those offset related methods. Thanks for your help! All the best! Jerome Eteve. -- Jerome Eteve. Chat with me live at http://www.eteve.net jer...@eteve.net