[ 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org