[ 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