[ 
https://issues.apache.org/jira/browse/LUCENE-3130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13094554#comment-13094554
 ] 

Robert Muir commented on LUCENE-3130:
-------------------------------------

Jan, not sure that most people only use single-term synonyms... if this is the 
case maybe we should rethink our synonyms implementation because multi-word 
adds a ton of complexity!

Another reason I suggested avoiding adding this to the core queryparser is 
because its going to be challenging to allow this optional boosting in a 
flexible way (just look at the getFieldQuery... its very hairy). I think in the 
ideal case, we somehow restructure all this code so that subclasses have more 
control over how the query is created... however I think this might be 
challenging just given how the code is structured now.

The reason I think it would be best exposed as a 'hook' to subclasses (versus 
adding a "deboost synonyms" option directly to the core QP), is that I think 
people are going to want to customize how this works, e.g. control it per-field 
and things like that.

At the end of the day, a queryparser could always subclass getFieldQuery 
completely and do this now, but thats not great either because the code is so 
hairy :(

This kind of feature might be easier to implement with the new queryparser in 
contrib, but I'm not sure.

> Use BoostAttribute in in TokenFilters to denote Terms that QueryParser should 
> give lower boosts
> -----------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-3130
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3130
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Hoss Man
>
> A recent thread asked if there was anyway to use QueryTime synonyms such that 
> matches on the original term specified by the user would score higher then 
> matches on the synonym.  It occurred to me later that a float Attribute could 
> be set by the SynonymFilter in such situations, and QueryParser could use 
> that float as a boost in the resulting Query.  IThis would be fairly 
> straightforward for the simple "synonyms => BooleamQuery" case, but we'd have 
> to decide how to handle the case of synonyms with multiple terms that produce 
> MTPQ, possibly just punt for now)
> Likewise, there may be other TokenFilters that "inject" artificial tokens at 
> query time where it also might make sense to have a reduced "boost" factor...
> * SynonymFilter
> * CommonGramsFilter
> * WordDelimiterFilter
> * etc...
> In all of these cases, the amount of the "boost" could me configured, and for 
> back compact could default to "1.0" (or null to not set a boost at all)
> Furthermore: if we add a new BoostAttrToPayloadAttrFilter that just copied 
> the boost attribute into the payload attribute, these same filters could give 
> "penalizing" payloads to terms when used at index time) could give 
> "penalizing" payloads to terms.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to