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: clients - java
    Affects Versions: 1.3, 1.3.1, 1.4
            Reporter: Wojciech Biela
             Fix For: 1.3.1


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.

Reply via email to