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

Markus Jelsma commented on SOLR-5379:
-------------------------------------

Ok, it seems i had some bad jars laying around messsing things up if a specific 
token filter was in use. Anyway, this patch works fine from single word to 
multi word but not the other way around. 

I have a 4.5.0 check out here with just this patch. Using the example schema 
and data and the usual [seabiscuit,sea biscit,biscit] syns:
http://localhost:8983/solr/select?defType=edismax&qf=name&rows=0&debugQuery=true&q=

{code}
q=biscit => (+DisjunctionMaxQuery(((name:seabiscuit name:"sea biscit" 
name:biscit))))/no_coord
q=seabiscuit => (+DisjunctionMaxQuery(((name:seabiscuit name:"sea biscit" 
name:biscit))))/no_coord
q=sea biscit => (+(DisjunctionMaxQuery((name:sea)) 
DisjunctionMaxQuery(((name:seabiscuit name:"sea biscit" 
name:biscit)))))/no_coord
{code}

This is all very nice but, if we change the syns from [seabiscuit,sea 
biscit,biscit] to [seabiscuit,sea biscit] it no longer works for
{code}
q=sea biscit => (+(DisjunctionMaxQuery((name:sea)) 
DisjunctionMaxQuery((name:biscit))))/no_coord
{code}

[~tiennm] So i assume this is clearly not the desired behaviour right? 



> Query-time multi-word synonym expansion
> ---------------------------------------
>
>                 Key: SOLR-5379
>                 URL: https://issues.apache.org/jira/browse/SOLR-5379
>             Project: Solr
>          Issue Type: Improvement
>          Components: query parsers
>            Reporter: Tien Nguyen Manh
>              Labels: multi-word, queryparser, synonym
>             Fix For: 4.7
>
>         Attachments: quoted.patch, synonym-expander.patch
>
>
> While dealing with synonym at query time, solr failed to work with multi-word 
> synonyms due to some reasons:
> - First the lucene queryparser tokenizes user query by space so it split 
> multi-word term into two terms before feeding to synonym filter, so synonym 
> filter can't recognized multi-word term to do expansion
> - Second, if synonym filter expand into multiple terms which contains 
> multi-word synonym, The SolrQueryParseBase currently use MultiPhraseQuery to 
> handle synonyms. But MultiPhraseQuery don't work with term have different 
> number of words.
> For the first one, we can extend quoted all multi-word synonym in user query 
> so that lucene queryparser don't split it. There are a jira task related to 
> this one https://issues.apache.org/jira/browse/LUCENE-2605.
> For the second, we can replace MultiPhraseQuery by an appropriate BoleanQuery 
> SHOULD which contains multiple PhraseQuery in case tokens stream have 
> multi-word synonym.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to