Hi Alessandro,
Don't get me wrong. Using mm, ps and pf can and absolutely will solve his
problem.

Like I said above, my solution is meant to be a quick and dirty fix. It's
really not that complex and shouldn't take more than an hour to setup at
the app level. Moreover I suggested it because he said it was urgent for
him and setting up a proper config with mm, pf and ps might take him much
longer.

Hope this clears things up :)

On Fri, 19 Feb 2016, 05:31 Alessandro Benedetti <abenede...@apache.org>
wrote:

> Hey Binoi ,
> can't understand why such complexity to be honest :/
> Can you explain me why playing with :
>
> edismax
> mm ( percentage of query terms you want to be in the results)
> pf ( the fields you want to be boosted if phrase matches )
> ps ( slop to allow)
>
> Should not solve the problem instead of the 2 phases query ?
>
> Cheers
>
> On 18 February 2016 at 18:09, Binoy Dalal <binoydala...@gmail.com> wrote:
>
> > Here's an alternative solution that may be of some help.
> > Here I'm assuming that you are not directly outputting the search results
> > to the user and have some sort of layer between the results from solr and
> > presentation to the user where some additional processing can be
> performed.
> >
> > 1) You already know that you want phrase matches to show up higher than
> > single matches. In this case, why not do an explicit phrase match first,
> > with some slop or as is based on how close you want the phrase terms be
> to
> > each other.
> > 2) Once you have the results from the first query, fire an OR query with
> > your terms and get those results.
> > 3) Put results from (2) after (1) and present to the user. This happens
> in
> > the app layer.
> >
> > This is essentially the same as running a query as such: "Rheumatoid
> > Arthritis"~slop OR (Rhuematoid AND Arthritis) but you don't need to worry
> > about the ordering because you're sorting your results.
> >
> > Now, this will obviously take more time since you're querying twice and
> > then doing the addtional processing in the app layer, but provided your
> > architecture is balanced enough and can cope with a little extra load, I
> do
> > not think that your performance will take that bad a hit. Moreover since
> > you're in a hurry, you could implement this as a quick and dirty solution
> > to meet the project goals, provided it fits the acceptance parameters and
> > then later play around with the scoring/sorting and figure out the best
> > possible setup to suit your needs.
> >
> > On Thu, Feb 18, 2016 at 4:22 PM Emir Arnautovic <
> > emir.arnauto...@sematext.com> wrote:
> >
> > > Hi Nitin,
> > > Can you send us how your parsed query looks like (from debug output).
> > >
> > > Thanks,
> > > Emir
> > >
> > > On 17.02.2016 08:38, Nitin.K wrote:
> > > > Hi Binoy,
> > > >
> > > > We are searching for both phrases and individual words
> > > > but we want that only those documents which are having phrases will
> > come
> > > > first in the order and then the individual app.
> > > >
> > > > termPositions = true is also not working in my case.
> > > >
> > > > I have also removed the string type from copy fields. kindly look
> into
> > > the
> > > > changed configuration below:
> > > >
> > > > Hi Emir,
> > > >
> > > > I have changed the cofiguration as per your suggestion, added pf2 /
> > pf3.
> > > > Yes, i saw the difference but still the ranking is not getting
> followed
> > > > correctly in case of phrases.
> > > >
> > > > Changed configuration;
> > > >
> > > > <field name="topic_title" type="text_general" indexed="true"
> > > stored="true"
> > > > />
> > > > <field name="topTitle" type="text_phrase" indexed="true"
> stored="false"
> > > />
> > > >
> > > > <field name="subtopic_title" type="text_general" indexed="true"
> > > > stored="true"/>
> > > > <field name="subTopTitle" type="text_phrase" indexed="true"
> > > stored="false"/>
> > > >
> > > > <field name="index_term" type="text_ws" indexed="true" stored="true"
> > > > multiValued="true"/>
> > > > <field name="indTerm" type="text_phrase" indexed="true"
> stored="false"
> > > > multiValued="true"/>
> > > >
> > > > <field name="drug" type="text_ws" indexed="true" stored="true"
> > > > multiValued="true"/>
> > > > <field name="drugString" type="text_phrase" indexed="true"
> > stored="false"
> > > > multiValued="true"/>
> > > >
> > > > <field name="tglData" type="text_phrase" indexed="true"
> > stored="false"/>
> > > >
> > > > Copy fields again for the reference :
> > > >
> > > > <copyField source="topic_title" dest="topTitle"/>
> > > > <copyField source="subtopic_title" dest="subTopTitle"/>
> > > > <copyField source="index_term" dest="indTerm"/>
> > > > <copyField source="drug" dest="drugString"/>
> > > > <copyField source="content" dest="tglData"/>
> > > >
> > > > Added following field type:
> > > >
> > > > <fieldType name="text_phrase" class="solr.TextField"
> > > > positionIncrementGap="100" omitNorms="true">
> > > >       <analyzer>
> > > >               <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> > > >               <filter class="solr.StopFilterFactory"
> ignoreCase="true"
> > > > words="stopwords.txt" />
> > > >               <filter class="solr.LowerCaseFilterFactory"/>
> > > >       </analyzer>
> > > > </fieldType>
> > > >
> > > > Removed the string type from the copy fields.
> > > >
> > > > Changed Query :
> > > >
> > > >
> > >
> >
> http://localhost:8983/solr/tgl/select?q=rheumatoid%20arthritis&wt=xml&tie=1.0&rows=200&q.op=AND&indent=true&defType=edismax&stopwords=true&lowercaseOperators=true&debugQuery=true&;
> > > > pf=topTitle^200 subtopTitle^80 indTerm^40 drugString^30 tglData^6&
> > > > pf2=topTitle^200 subtopTitle^80 indTerm^40 drugString^30 tglData^6&
> > > > pf3=topTitle^200 subtopTitle^80 indTerm^40 drugString^30 tglData^6&
> > > > qf=topic_title^100 subtopic_title^40 index_term^20 drug^15 content^3
> > > >
> > > > After making these changes, I am able to get my search results
> > correctly
> > > for
> > > > a single term but in case of phrase search, i am still not able to
> get
> > > the
> > > > results in the correct order.
> > > >
> > > > Hi Modassar,
> > > >
> > > > I tried using mm=100, but the order is still the same.
> > > >
> > > > Hi Alessandro,
> > > >
> > > > I have not yet tried the slope parameter. By default it is taking it
> as
> > > 1.0
> > > > when i looked it in debug mode. Will revert you definitely. So, let
> me
> > > try
> > > > this option too.
> > > >
> > > > All,
> > > >
> > > > Please suggest if anyone is having any other suggestion on this. I
> have
> > > to
> > > > implement it on urgent basis and i think i am very close to it.
> Thanks
> > > all
> > > > of you. I have reached to this level just because of you guys.
> > > >
> > > > Thanks and Regards,
> > > > Nitin
> > > >
> > > >
> > > >
> > > > --
> > > > View this message in context:
> > > http://lucene.472066.n3.nabble.com/SOLR-ranking-tp4257367p4257782.html
> > > > Sent from the Solr - User mailing list archive at Nabble.com.
> > >
> > > --
> > > Monitoring * Alerting * Anomaly Detection * Centralized Log Management
> > > Solr & Elasticsearch Support * http://sematext.com/
> > >
> > > --
> > Regards,
> > Binoy Dalal
> >
>
>
>
> --
> --------------------------
>
> 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
>
-- 
Regards,
Binoy Dalal

Reply via email to