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.

Reply via email to