Sorry, I forgot to turn on my _wild_ideas_ flag before that last post. That being said, you could build the notion of dependencies into each stage and have the search logic omputed based on those dependencies, alternatively you could do pre/post methods for each processing stage that allow each stage hands on access to the searcher... crap looks like ryan beat me by 3 minutes. oh well, what he said.
- will -----Original Message----- From: Chris Hostetter [mailto:[EMAIL PROTECTED] Sent: Monday, June 11, 2007 2:27 PM To: solr-dev@lucene.apache.org Subject: Re: search components (plugins) : // choose one query method : docs = Query( req, debug ) : - standard : - dismax : - mlt (as input) there are two small hitches to an approach like this, the first is that you'd like to reuse more of hte query processing then to just say "go pick the list of docs basedo nthe reuqest" ...ideally we'd want things like "fq" parsing/processing to be refactored so it can be reused by both standard and dismax and mlt, but that requires chagning the API to be something like... Query, Filter = MakeQuery(req, debug) ..and you delegate to the outermost "controller" to deal with the actual conversion to generate the "docs" ... expcet you alo hve to worry about start, rows, sort etc at that level, which makes it a lot less clean. the second hitch is that "docs" only makes sense in ssuedo code ... in reality there are DocSets and DocLists, and the efficiencies of geting only one instead of both can be significant, but if the first phase of processing doesn't know what expectations the later phases have (facet or not? returns aDocList in teh response or not?) it may have to assume you need both. : // zero or more... : info[] = Info( req, docs, debug ) : + facet : + mlt (on each result) this for the record is what i was kind of amming for back when i made the SimpleFacets class ... give if the docset and some Solr Params, and then ask it for what you want (either some specific peice of functionality like getFacetFieldCounts, or all possibletypes of facets even if you don't know what they are with getFacetCounts()). -Hoss