[ 
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

Reply via email to