Here's my opinion on this matter... a StandardRequestHandler shouldn't even need to be subclassed to plug in different query parsers. This is where a microkernal framework such as HiveMind would really shine. I'm ashamed to admit that I'm not skilled in the ways of HiveMind Jedi, despite my Tapestry immersion, but the benefits HiveMind offer are exactly for this sort of pluggable features capability. I see several facets to a request handler and each of these should be tunable by simple configuration: query parsing, (possible future) multiple index support, request and response protocols (OpenSearch, Solr XML, XML-RPC), highlighting, security (a big one I haven't seen discussed here), and more. So rather than a subclassing architecture, let's go for a kernel architecture where we can plug in features easily very modularly via configuration rather Java code.

Anyone here toyed with HiveMind or Spring? I'd like to eat our own dog food and give HiveMind a try though. Ah, yet another fun idea to put on my TODO list! Maybe I'll be lucky and someone beats me to it :)

        Erik

On Apr 7, 2006, at 12:12 PM, Yonik Seeley wrote:

On 4/6/06, Chris Hostetter <[EMAIL PROTECTED]> wrote:
: The easiest way would be to add another parameter specifying the
: default query syntax.
:   qformat=lucene     // default QueryParser syntax
:   qformat=xml         // Mark's XML query syntax
:   qformat=surround  // Paul's surround query syntax

You mean the the standard request handler?

Why not add an XmlRequestHandler and an SurroundRequestHandler that each
parse their "q"  param using the appropraite parser?

If the only thing one wants to change is the format of the Lucene
query itself, and not the complete request (Paul's surround syntax
might be a better example), and it's a broadly applicable query
format, then why make a whole new handler?

But, it would make sense if enough stuff was different (query args,
way to specify return fields, return format, etc).  For example, I
imagine that enough stuff would be different for OpenSearch support
that it would make sense to have a different handler.

-Yonik

Reply via email to