On 2/2/2017 6:16 AM, deepak.gha...@mediawide.com wrote:
> I am writting query for getting response from specific index content first.
> eg.
> http://192.168.200.14:8983/solr/mypgmee/select?q=*blood*&fq=id:(*/939/* OR 
> **)&fl=id&wt=json&indent=true
>  
> In above query I am getting response, Means suppose I Get 4 result for course 
> "939" out of 10. It works fine by releanvence. 
> But Now I want "939" course result first then other result.So Please let me 
> how can I do that.

Are those asterisks in your actual query, or did you add some of them
for emphasis?  I'm guessing that at least some of them are added for
emphasis.  Asterisks in a query are wildcard characters, and wildcard
queries frequently do not behave like people expect them to.

We need to see the actual query, without any extra characters.  If
asterisks have been added, then we will have an incorrect understanding
about what the query says.

Attempting to guess what you are actually doing, here is what I THINK
you might have meant:

q=blood
fq=id:(939 OR *)

If I'm right about that filter query, I do not know what you were trying
to do.  If you were trying to query for 939 or any other value, use this
instead:

fq=id:[* TO *]

This is a range query that will match all documents where the id field
contains SOMETHING.  Documents where it is not present will not be
matched.  If you do not actually want to *filter* on the id value, then
you can simply remove the fq parameter entirely.  Filter queries do not
contribute to scoring at all -- they *only* filter.

The last part of your message says you want documents with an id of 939
to be listed first.  I think you can do that with this:

bq=id:939^10

The bq parameter means "boost query".  The ^10 part of what I've written
is the boost value.

Thanks,
Shawn

Reply via email to