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

Reply via email to