lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Erickson <erickerick...@gmail.com>
Subject Re: AND operator and dismax request handler
Date Sun, 06 Feb 2011 15:10:25 GMT
Try attaching &debugQuery=on to your queries. The results will show
you exactly what the query is after it gets parsed and the difference
should stand out.

About dismax. Try looking at the "minimum should match" parameter,
that might do what you're looking for. Or, think about edismax if you're on
trunk or 3_x...

Best
Erick

On Sat, Feb 5, 2011 at 9:47 AM, Bagesh Sharma <mail.bagesh@gmail.com> wrote:

>
> Hi friends, Please suggest me that how can i set query operator to AND for
> dismax request handler case.
>
> My problem is that i am searching a string "water treatment plant" using
> dismax request handler . The query formed is of such type ....
>
>
> http://localhost:8884/solr/select/?q=water+treatment+plant&q.alt=*:*&start=0&rows=5&sort=score%20desc&qt=dismax&omitHeader=true
>
> My handling for dismax request handler in solrConfig.xml is -
>
> <requestHandler name="dismax" class="solr.DisMaxRequestHandler"
> default="true">
>        <lst name="defaults">
>                <str name="facet">true</str>
>                <str name="echoParams">explicit</str>
>                <float name="tie">0.2</float>
>
>                <str name="qf">
>                        TDR_SUBIND_SUBTDR_SHORT^3
>                        TDR_SUBIND_SUBTDR_DETAILS^2
>                        TDR_SUBIND_COMP_NAME^1.5
>                        TDR_SUBIND_LOC_STATE^3
>                        TDR_SUBIND_PROD_NAMES^2.5
>                        TDR_SUBIND_LOC_CITY^3
>                        TDR_SUBIND_LOC_ZIP^2.5
>                        TDR_SUBIND_NAME^1.5
>                        TDR_SUBIND_TENDER_NO^1
>                </str>
>
>                <str name="pf">
>                        TDR_SUBIND_SUBTDR_SHORT^15
>                        TDR_SUBIND_SUBTDR_DETAILS^10
>                        TDR_SUBIND_COMP_NAME^20
>                </str>
>
>                <str name="qs">1</str>
>                <int name="ps">0</int>
>                <str name="mm">20%</str>
>        </lst>
> </requestHandler>
>
>
> In the final parsed query it is like
>
> +((TDR_SUBIND_PROD_NAMES:water^2.5 | TDR_SUBIND_LOC_ZIP:water^2.5 |
> TDR_SUBIND_COMP_NAME:water^1.5 | TDR_SUBIND_TENDER_NO:water |
> TDR_SUBIND_SUBTDR_SHORT:water^3.0 | TDR_SUBIND_SUBTDR_DETAILS:water^2.0 |
> TDR_SUBIND_LOC_CITY:water^3.0 | TDR_SUBIND_LOC_STATE:water^3.0 |
> TDR_SUBIND_NAME:water^1.5)~0.2 (TDR_SUBIND_PROD_NAMES:treatment^2.5 |
> TDR_SUBIND_LOC_ZIP:treatment^2.5 | TDR_SUBIND_COMP_NAME:treatment^1.5 |
> TDR_SUBIND_TENDER_NO:treatment | TDR_SUBIND_SUBTDR_SHORT:treatment^3.0 |
> TDR_SUBIND_SUBTDR_DETAILS:treatment^2.0 | TDR_SUBIND_LOC_CITY:treatment^3.0
> | TDR_SUBIND_LOC_STATE:treatment^3.0 | TDR_SUBIND_NAME:treatment^1.5)~0.2
> (TDR_SUBIND_PROD_NAMES:plant^2.5 | TDR_SUBIND_LOC_ZIP:plant^2.5 |
> TDR_SUBIND_COMP_NAME:plant^1.5 | TDR_SUBIND_TENDER_NO:plant |
> TDR_SUBIND_SUBTDR_SHORT:plant^3.0 | TDR_SUBIND_SUBTDR_DETAILS:plant^2.0 |
> TDR_SUBIND_LOC_CITY:plant^3.0 | TDR_SUBIND_LOC_STATE:plant^3.0 |
> TDR_SUBIND_NAME:plant^1.5)~0.2) (TDR_SUBIND_SUBTDR_DETAILS:"water treatment
> plant"^10.0 | TDR_SUBIND_COMP_NAME:"water treatment plant"^20.0 |
> TDR_SUBIND_SUBTDR_SHORT:"water treatment plant"^15.0)~0.2
>
>
>
> Now it gives me results if any of the word is found from text "water
> treatment plant". I think here OR operator is working which finally
> combines
> the results.
>
> Now i want only those results for which only complete text should be
> matching "water treatment plant".
>
> 1. I do not want to make any change in solrConfig.xml dismax handler. If
> possible then suggest any other handler to deal with it.
>
> 2. Does there is really or operator is working in query. basically when i
> query like this
>
> q=%2Bwater%2Btreatment%2Bplant&q.alt=*:*&q.op=AND&start=0&rows=5&sort=score
> desc,TDR_SUBIND_SUBTDR_OPEN_DATE
> asc&omitHeader=true&debugQuery=true&qt=dismax
>
> OR
>
>
> q=water+AND+treatment+AND+plant&q.alt=*:*&q.op=AND&start=0&rows=5&sort=score
> desc,TDR_SUBIND_SUBTDR_OPEN_DATE
> asc&omitHeader=true&debugQuery=true&qt=dismax
>
>
> Then it is giving different results. Can you suggest what is the difference
> between above two queries.
>
> Please suggest me for full text search "water treatment plant".
>
> Thanks for your response.
>
> --
> View this message in context:
> http://lucene.472066.n3.nabble.com/AND-operator-and-dismax-request-handler-tp2431391p2431391.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message