[ 
https://issues.apache.org/jira/browse/SOLR-758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801314#action_12801314
 ] 

David Smiley commented on SOLR-758:
-----------------------------------

If the use-case is unrestricted Lucene syntax w/ dismax then Enhanced Dismax is 
the way to go.  What I'm shooting for in this issue is a more extensible query 
parser.  E-Dismax is cool but it doesn't look particularly extensible.

For example, in an app I support, I use this patch to do several things:
1. check if appears to be using fancy Lucene syntax and if so then treat as 
such.. but with dismax of course on non-fielded clauses via SOLR-756
2. If one clause then rewrite query to:    clause *clause*^0.5       -- i.e. 
search for clause and also include partial matches.  For a small index I have 
this is fine but I can use n-gram some day if I need to.
3. If multiple clauses then rewrite query to:   clauseA clauseB clauseC 
clauseC*^0.5     (clauseC is last clause).

What I'm hoping for is for Solr to offer better query parsing infrastructure so 
that I can implement my parsing needs by re-using/plugging into as much as 
already exists as possible.  Committing SOLR-756 is one step there... but then 
there's some useful capabilty in DismaxQParser like boost queries, boost 
functions, q.alt.    min-should-match is relatively re-usable since it stands 
alone.

> Enhance DisMaxQParserPlugin to support full-Solr syntax and to support 
> alternate escaping strategies.
> -----------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-758
>                 URL: https://issues.apache.org/jira/browse/SOLR-758
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: 1.3
>            Reporter: David Smiley
>             Fix For: 1.5
>
>         Attachments: AdvancedQParserPlugin.java, AdvancedQParserPlugin.java, 
> DisMaxQParserPlugin.java, DisMaxQParserPlugin.java, UserQParser.java, 
> UserQParser.java, UserQParser.java-umlauts.patch
>
>
> The DisMaxQParserPlugin has a variety of nice features; chief among them is 
> that is uses the DisjunctionMaxQueryParser.  However it imposes limitations 
> on the syntax.  
> I've enhanced the DisMax QParser plugin to use a pluggable query string 
> re-writer (via subclass extension) instead of hard-coding the logic currently 
> embedded within it (i.e. the escape nearly everything logic). Additionally, 
> I've made this QParser have a notion of a "simple" syntax (the default) or 
> non-simple in which case some of the logic in this QParser doesn't occur 
> because it's irrelevant (phrase boosting and min-should-max in particular). 
> As part of my work I significantly moved the code around to make it clearer 
> and more extensible.  I also chose to rename it to suggest it's role as a 
> parser for user queries.
> Attachment to follow...

-- 
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