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

Reply via email to