You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Brian Narsi <bn...@gmail.com> on 2015/11/04 17:03:11 UTC

phrase query

I have the following field type:

<fieldType name="edgngrm" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
maxGramSize="25"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
  </fieldType>

I am trying to use dismax query parser (because it seems to have better
phrase query support compared with standard query parser?)
I have mm = 1
ps = 4

I have the following data indexed:

1) acute care pharmaceuticals
2) carefusion llc


When
q=acute - Result = 1) is found (correct)
q=acu car - Result = 2) and 1) are found

But I need 1) to be before 2) because it has better relevance.

How do I make that happen?

Thanks for help!

Re: phrase query

Posted by Alessandro Benedetti <ab...@apache.org>.
Hi Brian,
this is a relevancy problem.
I would suggest you to use :
http://splainer.io ( it's a really nice Doug tool, related to Quepid)
to get why you have one doc in front of another.
Then Please attach in here the result.
If you want to give us all the details please also attach the
debugQuery=true part.

It should be related the tf and idf of the tokens acu and car.
Let's wait for additional info and then try to give some explanation.

Cheers

On 4 November 2015 at 16:03, Brian Narsi <bn...@gmail.com> wrote:

> I have the following field type:
>
> <fieldType name="edgngrm" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer type="index">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
> maxGramSize="25"/>
> </analyzer>
> <analyzer type="query">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> </analyzer>
>   </fieldType>
>
> I am trying to use dismax query parser (because it seems to have better
> phrase query support compared with standard query parser?)
> I have mm = 1
> ps = 4
>
> I have the following data indexed:
>
> 1) acute care pharmaceuticals
> 2) carefusion llc
>
>
> When
> q=acute - Result = 1) is found (correct)
> q=acu car - Result = 2) and 1) are found
>
> But I need 1) to be before 2) because it has better relevance.
>
> How do I make that happen?
>
> Thanks for help!
>



-- 
--------------------------

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