What happens when you switch to lucene query parser? E.g. When you add &defType=lucene to your search URL?
--- On Thu, 10/6/11, Bernd Fehling <bernd.fehl...@uni-bielefeld.de> wrote: > From: Bernd Fehling <bernd.fehl...@uni-bielefeld.de> > Subject: Re: query synonym expansion howto? > To: solr-user@lucene.apache.org > Date: Thursday, October 6, 2011, 4:41 PM > OK, I have changed my > synonyms_test.txt: > philosophie, philosophy, filosofia > > So there are no multi-word synonyms but it is still not > working. > And also if setting qs=0 I get a query slop. > > > search for "philosophie" --> 13 hits > search for "philosophy" --> 21 hits > search for "filosofia" --> 51 hits > > search for "philosophy" with synonym expansion --> 0 > hits. > > <str name="q">textth:philosophy</str> > </lst> > </lst> > <result name="response" numFound="0" start="0" > maxScore="0.0"/> > − > <lst name="debug"> > <str > name="rawquerystring">textth:philosophy</str> > <str > name="querystring">textth:philosophy</str> > − > <str name="parsedquery"> > +((textth:philosophie textth:philosophy > textth:filosofia)~3) > </str> > − > <str name="parsedquery_toString"> > +((textth:philosophie textth:philosophy > textth:filosofia)~3) > </str> > <lst name="explain"/> > <str > name="QParser">ExtendedDismaxQParser</str> > > > org.apache.solr.analysis.SynonymFilterFactory > {tokenizerFactory=solr.WhitespaceTokenizerFactory, > synonyms=synonyms_test.txt, expand=true, > format=solr, ignoreCase=true, > luceneMatchVersion=LUCENE_35} > position 1 > term text philosophie > > philosophy > > filosofia > type SYNONYM > > SYNONYM > > SYNONYM > startOffset 0 > > 0 > > 0 > endOffset 10 > > 10 > > 10 > > > Very strange. > Anything else to try? > > Regards > Bernd > > > Am 06.10.2011 13:58, schrieb Ahmet Arslan: > > Query time synonym expansion has problems with > multi-word synonyms. > > Query parser splits query string according to > white-spaces before query string reaches to analysis chain. > > > > > > This is a known limitation explained here : > > > > http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory > > > > But I think using synonyms at index time has its > problems as well. E.g. You need to re-index if you > add/remove/edit synonym list. For some systems re-indexing > takes a lot of time. > > > > I am wondering if a "query expansion module" that > injects (before analysis chain) synonymy to initial query > string would makes sense. > > E.g. If the query string contains 'adult education' it > will add "educación de adultos" phrase as an injected > optional clause. > > > > About query slop, since you are using (e)dismax query > parser, it is controlled via qs parameter. > > > > http://wiki.apache.org/solr/DisMaxQParserPlugin#qs_.28Query_Phrase_Slop.29 > > > > > >> has anyone managed to get querytime synonym > expansion > >> working? > >> > >> Synonym expansion itself is working but I get no > search > >> results. > >> > >> synonyms_test.txt > >> erwachsenenbildung, adult education, educación de > adultos, > >> éducation des adultes > >> > >> search for > >> > "erwachsenenbildung" --> 8 > hits > >> search for "adult education" > --> 13 > >> hits > >> search for "educación de adultos" > --> 3 hits > >> > >> search for "adult education" with synonym > expansion --> > >> 0 hits. > >> > >> RESULT: > >> ------- > >> <str name="q">textth:"adult > education"</str> > >> <str name="q.op">OR</str> > >> > >> <result name="response" numFound="0" start="0" > >> maxScore="0.0"/> > >> − > >> <lst name="debug"> > >> <str name="rawquerystring">textth:"adult > >> education"</str> > >> <str name="querystring">textth:"adult > >> education"</str> > >> − > >> <str name="parsedquery"> > >> +((textth:erwachsenenbildung textth:adult > education > >> textth:educación de adultos textth:éducation > des > >> adultes)~4) > >> </str> > >> − > >> <str name="parsedquery_toString"> > >> +((textth:erwachsenenbildung textth:adult > education > >> textth:educación de adultos textth:éducation > des > >> adultes)~4) > >> </str> > >> <lst name="explain"/> > >> <str > >> > name="QParser">ExtendedDismaxQParser</str> > >> > >> > >> Can it be that the "q.op=OR" parameter is > ignored? > >> > >> Why is the a slop of ~4 added to the parsedquery? > >> > >> Regards, > >> Bernd > >> > >> > >> > > -- > ************************************************************* > Bernd Fehling > Universitätsbibliothek Bielefeld > Dipl.-Inform. (FH) > Universitätsstr. > 25 > Tel. +49 521 106-4060 > Fax. +49 521 > 106-4052 > bernd.fehl...@uni-bielefeld.de > 33615 > Bielefeld > > BASE - Bielefeld Academic Search Engine - > www.base-search.net > ************************************************************* >