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 Vijay Khurana <co...@gmail.com> on 2008/02/26 10:15:52 UTC

Boost the results for filter value in a single query

Hi,
Here is the problem I am facing.
One of the field in my index is content_source which I use to filter my
results.
I want all the documents that have content_source value as ABC OR DEF
and all the documents having DEF
should appear before the documents that have content_source value as ABC. I
am using DisMaxRequestHandler and Solr 2.0.

Currently I am using below query:

q=test&qt=dismax&fq=contemt_source:("ABC" OR "DEF")

The above query doesn't guarantee the appearance of DEF documents before
ABC.
I want to do this in one query. is it possible?

Appreciate your help.

Thanks,
Vijay

Re: Boost the results for filter value in a single query

Posted by Yonik Seeley <yo...@apache.org>.
On Tue, Feb 26, 2008 at 11:24 PM, Vijay Khurana
<co...@gmail.com> wrote:
> Thanks for the response Yonik.
>  The content source field is a single valued field. Sorting the results won't
>  work for me as the content source values are arbitrary strings and there is
>  no set pattern i.e it can be axd or xbc or abc def. All I know at time of
>  the query that results for content source axd should appear before
>  the results for other content sources.

OK, then if you are sorting by score, you could manipulate it such
that anything with the content_source you are looking for will come
first.

qt=dismax&q=foo&fq=content_source:(ABC OR DEF)&bq=content_source:DEF^1000

bq is a boosting query... an optional part in lucene syntax that is
added to the generated dismax query.

-Yonik

Re: Boost the results for filter value in a single query

Posted by Vijay Khurana <co...@gmail.com>.
Thanks for the response Yonik.
The content source field is a single valued field. Sorting the results won't
work for me as the content source values are arbitrary strings and there is
no set pattern i.e it can be axd or xbc or abc def. All I know at time of
the query that results for content source axd should appear before
the results for other content sources.

Thanks,
Vijay


On 2/26/08, Yonik Seeley <yo...@apache.org> wrote:
>
> If content_source is single valued (maximum of one value per
> document), then sort.
> sort=content_source asc
>
> -Yonik
>
> On Tue, Feb 26, 2008 at 4:15 AM, Vijay Khurana <co...@gmail.com>
> wrote:
> > Hi,
> >  Here is the problem I am facing.
> >  One of the field in my index is content_source which I use to filter my
> >  results.
> >  I want all the documents that have content_source value as ABC OR DEF
> >  and all the documents having DEF
> >  should appear before the documents that have content_source value as
> ABC. I
> >  am using DisMaxRequestHandler and Solr 2.0.
> >
> >  Currently I am using below query:
> >
> >  q=test&qt=dismax&fq=contemt_source:("ABC" OR "DEF")
> >
> >  The above query doesn't guarantee the appearance of DEF documents
> before
> >  ABC.
> >  I want to do this in one query. is it possible?
> >
> >  Appreciate your help.
> >
> >  Thanks,
> >  Vijay
> >
>

Re: Boost the results for filter value in a single query

Posted by Yonik Seeley <yo...@apache.org>.
If content_source is single valued (maximum of one value per
document), then sort.
sort=content_source asc

-Yonik

On Tue, Feb 26, 2008 at 4:15 AM, Vijay Khurana <co...@gmail.com> wrote:
> Hi,
>  Here is the problem I am facing.
>  One of the field in my index is content_source which I use to filter my
>  results.
>  I want all the documents that have content_source value as ABC OR DEF
>  and all the documents having DEF
>  should appear before the documents that have content_source value as ABC. I
>  am using DisMaxRequestHandler and Solr 2.0.
>
>  Currently I am using below query:
>
>  q=test&qt=dismax&fq=contemt_source:("ABC" OR "DEF")
>
>  The above query doesn't guarantee the appearance of DEF documents before
>  ABC.
>  I want to do this in one query. is it possible?
>
>  Appreciate your help.
>
>  Thanks,
>  Vijay
>