[
https://issues.apache.org/jira/browse/LUCENE-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Shai Erera closed LUCENE-344.
-----------------------------
Resolution: Not A Problem
Assignee: (was: Lucene Developers)
Not sure this is a problem anymore since QP now allows extending and overriding
getXYZ() methods for creating specific Query instances.
> [PATCH] Introduction of QueryFactory interface for Query construction
> ---------------------------------------------------------------------
>
> Key: LUCENE-344
> URL: https://issues.apache.org/jira/browse/LUCENE-344
> Project: Lucene - Java
> Issue Type: Improvement
> Components: QueryParser
> Affects Versions: unspecified
> Environment: Operating System: Linux
> Platform: Other
> Reporter: Matthew Denner
> Priority: Minor
> Attachments: Lucene-QueryParser.patch
>
>
> To override the default behaviour of the QueryParser you must currently
> extend
> it and override the appropriate methods. This seemed to be a little awkward.
>
>
> To enable a (hopefully) more flexible means of creating Query instances it
> would seem better to introduce a QueryFactory interface and pass an instance
> of
> an implementation of this interface to the QueryParser, having the
> QueryParser
> callback to it to construct the query as it parses it. With this design you
> could write something like:
>
> QueryParser parser = new QueryParser("defaultField", new StandardAnalyzer(),
> new QueryFactoryImpl());
>
> Where 'QueryFactoryImpl' is an implementation of the QueryFactory interface.
>
> If you wanted to add the ability to lower case all of your queries you could
> then write:
>
> QueryParser parser = new QueryParser("defaultField", new StandardAnalyzer(),
> new LowerCaseQueryFactory(new QueryFactoryImpl()));
>
> Where 'LowerCaseQueryFactory' is a decorator around another QueryFactory
> instance and it simply lowercases all the terms passed to it before
> delegating
> the actual query construction. This is a simple example, but more powerful
> functionality could be added not by changing the QueryParser, but by creating
> a
> new QueryFactory implementation.
>
> I have a patch for this which will be forthcoming in a moment.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]