You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Shalin Shekhar Mangar (JIRA)" <ji...@apache.org> on 2009/05/28 10:02:45 UTC

[jira] Resolved: (SOLR-786) refactor in DisMaxQParserPlugin and DismaxQParser to allow extending DismaxQParser

     [ https://issues.apache.org/jira/browse/SOLR-786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shalin Shekhar Mangar resolved SOLR-786.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.4
         Assignee: Shalin Shekhar Mangar

Committed revision 779469.

Thanks Wojciech!

> refactor in DisMaxQParserPlugin and DismaxQParser to allow extending DismaxQParser
> ----------------------------------------------------------------------------------
>
>                 Key: SOLR-786
>                 URL: https://issues.apache.org/jira/browse/SOLR-786
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: 1.3
>            Reporter: Wojciech Biela
>            Assignee: Shalin Shekhar Mangar
>            Priority: Minor
>             Fix For: 1.4
>
>         Attachments: dismax-query-parser.patch, SOLR-786.patch
>
>
> I needed to change some of the default behaviour of the DismaxQParser, so as opposed to infecting the solr codebase with our custom behaviour, I wanted to be able to subclass the DismaxQParser and change only what we wanted to change. 
> Here I submit a patch that allows for such subclassing. The change that is done to the code base in the following steps:
> 1. refactor in the DismaxQParser.parse() method to 
>     addMainQuery(query, solrParams);
>     addBoostQuery(query, solrParams);
>     addBoostFunctions(query, solrParams); 
> 2. refactor the addMainQuery() method to use 
>     getUserQuery(userQuery, up, solrParams)
>     getAlternateUserQuery(solrParams)
>     getPhraseQuery(userQuery, pp) 
> 3. move the DismaxQParser to the top-level to make it public (and allow subclassing)
> After applying this change I can to as follows:
> 1. write my own QParserPlugin to return a subclass of the DismaxQParser 
> 2. in this subclass I override the the methods I need, in my case the getUserQuery() method.
> 3. add this plugin to the solrconfig.xml and use it
> the patch is done against the Solr svn trunk

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.