Looking toward the future, and distributed search, this might be a
natural place to add hooks to implement that distributed logic.  This
would allow other people to efficiently support their custom
functionality in a distributed environment.

Thoughts?


I like it. As is the prospect of adding field collapsing to standard, dismax, *and* MLT is ugly -- it shouldn't not be.

Is this the basic architecture you are suggesting? A single handler that chooses what components are used in the request pipeline. Something like:

 // maybe debug
 debug = Debug?

 // choose one query method
 docs = Query( req, debug )
  - standard
  - dismax
  - mlt (as input)
  - ...

 // zero or more...
 info[] = Info( req, docs, debug )
  + facet
  + mlt (on each result)
  + ...

 // zero or more (passed as a chain)
 docs = Transform( req, docs, debug )
  + collapse
  + ???

 // zero or more
 fmt[] Format( req, docs )
  + highlight

 // Build the response
 rsp.add( docs  );
 rsp.add( info  );
 rsp.add( fmt   );
 rsp.add( debug );


I'm not sure how well this would work for distributed queries... doesn't formatting need to happen in the same place as the query?

Are there other general categories I'm missing?



Reply via email to