[
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: [email protected]
For additional commands, e-mail: [email protected]