The document seems to point to using AutoPhrasingTokenFilter, putting an
underscore to the multi-term or changing to index time synonyms.

I'm also thinking of putting the synonyms onto a database or query some
thesaurus website when the using enter the search key, instead of using the
SynonymFilterFactory.

For this, once user enter a search key, the program will retrieve the list
of synonyms. Then I'll append the list to the search parameters (ie: q).
I'll use the boosting relevancy to give the original term a higher boost,
and the synonyms a lower boost.

Is this a good solution?

Regards,
Edwin
 On 8 May 2015 17:40, "Alessandro Benedetti" <benedetti.ale...@gmail.com>
wrote:

> I found this very interesting article that I think can help in better
> understanding the problem :
>
> http://lucidworks.com/blog/solution-for-multi-term-synonyms-in-lucenesolr-using-the-auto-phrasing-tokenfilter/
>
> And this :
>
> http://opensourceconnections.com/blog/2013/10/27/why-is-multi-term-synonyms-so-hard-in-solr/
>
> Take a look and let me know !
>
> 2015-05-08 10:26 GMT+01:00 Zheng Lin Edwin Yeo <edwinye...@gmail.com>:
>
> > Thanks for explaining the information.
> >
> > Currently I'm only using the comma-separated list of words and only using
> > the synonym filter at query time. I find that when I set expend = true,
> > there's quite a number of irrelevant results that came back, and this
> > didn't happen when I set expend = false.
> >
> > I've yet to try the lists of words with the symbol "=>" between them. I'm
> > trying to solve the multi-word synonyms too, and I found that enclosing
> the
> > multi-word in quotes will solve the issue. But this creates problem and
> the
> > original token is not return if I enclose single word in quotes.
> >
> > Will using the lists of words with the symbol "=>" between them better
> than
> > the comma-separated list of words to cater to the multi-word synonyms?
> >
> > Regards,
> > Edwin
> >
> >
> >
> > On 8 May 2015 at 17:10, Alessandro Benedetti <benedetti.ale...@gmail.com
> >
> > wrote:
> >
> > > Let's explain  little bit better here :
> > > First of all, the SynonimFilter is a Token Filter, and being a Token
> > Filter
> > > it can be part of an Analysis pipeline at Indexing and Query Time.
> > > As the different type of analysis explicitly explains when the
> filtering
> > > happens, let's go to the details of the synonyms.txt.
> > > This file contains a set of lines, each of them describing a synonym
> > > policy.
> > > There are 2 different syntaxes accepted :
> > >
> > >
> > >
> > >
> > > *couch,sofa,divanteh => thehuge,ginormous,humungous => largesmall =>
> > > tiny,teeny,weeny*
> > >
> > >
> > >    - A comma-separated list of words. If the token matches any of the
> > >    words, then all the words in the list are substituted, which will
> > > include
> > >    the original token.
> > >
> > >
> > >    - Two comma-separated lists of words with the symbol "=>" between
> > them.
> > >    If the token matches any word on the left, then the list on the
> right
> > is
> > >    substituted. The original token will not be included unless it is
> also
> > > in
> > >    the list on the right.
> > >
> > >
> > > Related the "expand" param, directly from the official Solr
> > documentation :
> > >
> > > expand: (optional; default: true) If true, a synonym will be expanded
> to
> > > all equivalent synonyms. If false, all equivalent synonyms will be
> > reduced
> > > to the first in the list.
> > >
> > > So, starting from this definition let's answer to your questions:
> > >
> > > 1) Related the expand the definition seems quite clear, if anything
> > strange
> > > is occurring to you, let me know
> > > 2) Related your second question, it depends on your synonym.txt file,
> if
> > > you are not using the => syntax, you are going to always retrieve all
> > > the synonyms(
> > > included the original term)
> > >
> > > If you need more info let me know, it can strictly depends how you are
> > > using the filter as well ( indexing ? querying ? both ? )
> > > Example :
> > > If you are using the filter only at Indexing time, then using the =>
> > syntax
> > > will prevent the user to search for the original token in the
> synonym.txt
> > > relation.
> > > Because it will not appear in the index.
> > >
> > > Cheers
> > >
> > >
> > > 2015-05-08 9:24 GMT+01:00 Zheng Lin Edwin Yeo <edwinye...@gmail.com>:
> > >
> > > > Hi,
> > > >
> > > > Will like to check, for the SynonymFilterFactory, I have the
> following
> > in
> > > > my synonyms.txt:
> > > >
> > > > Titanium Dioxides, titanium oxide, pigment
> > > > pigment, colour, colouring material
> > > >
> > > > If I set expend=false, and I search for q=pigment, I will get results
> > > that
> > > > matches pigment, Titanium Dioxides and titanium oxide. But it will
> not
> > > > maches colour and colouring materials, as all equivalent synonyms
> will
> > > only
> > > > matches those first in the list.
> > > >
> > > > If I set expend=false, and I search for q=pigment, I'll get results
> > that
> > > > matches everything in the list (ie: Titanium Dioxides, titanium
> oxide,
> > > > colour, colouring material)
> > > >
> > > > Is my understand correct?
> > > >
> > > > Also, I will like to check, how come if I search q="pigment"
> (enclosed
> > in
> > > > quotes), I only get matches for Titanium Dioxides and not pigment?
> > > >
> > > > Regards,
> > > > Edwin
> > > >
> > >
> > >
> > >
> > > --
> > > --------------------------
> > >
> > > Benedetti Alessandro
> > > Visiting card : http://about.me/alessandro_benedetti
> > >
> > > "Tyger, tyger burning bright
> > > In the forests of the night,
> > > What immortal hand or eye
> > > Could frame thy fearful symmetry?"
> > >
> > > William Blake - Songs of Experience -1794 England
> > >
> >
>
>
>
> --
> --------------------------
>
> Benedetti Alessandro
> Visiting card : http://about.me/alessandro_benedetti
>
> "Tyger, tyger burning bright
> In the forests of the night,
> What immortal hand or eye
> Could frame thy fearful symmetry?"
>
> William Blake - Songs of Experience -1794 England
>

Reply via email to