Oops, didn't notice that this was java-user. I had a Solr 'why write
more code' reaction ?)

On Sat, Jul 31, 2010 at 1:56 PM, Uwe Schindler <u...@thetaphi.de> wrote:
> We don't want to modify the ranking using functions, we want to switch some 
> queries to constant score mode. The QueryParser subclassing is just to make 
> it convenient.
>
> In general to strip off scores from queries, you use "new 
> ConstantScoreQuery(new QueryWrapperFilter(query))", this is used inside 
> Lucene, too (MultiTermQuery,...). The trick is to normalize the Scorer to 
> return a constant value (boost of CSQ). This can be done by first wrapping 
> the scorer of the original query in a filter and then add a scorer to the 
> filter again, that returns a constant.
>
> With function queries you can do something similar by returning a constant in 
> the CustomScoreProvider. The QWF/CSQ trick is more convenient and used quite 
> often inside Lucene, too.
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: u...@thetaphi.de
>
>
>> -----Original Message-----
>> From: Lance Norskog [mailto:goks...@gmail.com]
>> Sent: Saturday, July 31, 2010 10:50 PM
>> To: java-user@lucene.apache.org
>> Subject: Re: Rank results only on some fields
>>
>> Can't this use case be done with a function query?
>>
>> On Sat, Jul 31, 2010 at 1:59 AM, Uwe Schindler <u...@thetaphi.de> wrote:
>> > Here some example code, the method is getFieldQuery() (Lucene 2.9 or
>> > 3.0 or following, don't use that approach before, because
>> > QueryWrapperFilter is not effective before 2.9 for that):
>> >
>> > @Override
>> > protected Query getFieldQuery(String field, String queryText)  throws
>> > ParseException {
>> >        Query q = super.getFieldQuery(field,queryText);
>> >        if (!"TITLE".equals(field))
>> >                q = new ConstantScoreQuery(new QueryWrapperFilter(q));
>> >        return q;
>> > }
>> >
>> > I hope that explains itself. You may look at other Query type
>> > factories in QP that produce scoring queries and wrap them similar.
>> > But e.g. WildCard and RangeQueries are constant score. Phrases are also
>> handled by this method.
>> > Only the slop setting may not work correctly after this (look at the
>> > instanceof checks in getFieldQuery(..., slop)).
>> >
>> > Uwe
>> >
>> > -----
>> > Uwe Schindler
>> > H.-H.-Meier-Allee 63, D-28213 Bremen
>> > http://www.thetaphi.de
>> > eMail: u...@thetaphi.de
>> >
>> >
>> >> -----Original Message-----
>> >> From: Uwe Schindler [mailto:u...@thetaphi.de]
>> >> Sent: Saturday, July 31, 2010 10:19 AM
>> >> To: java-user@lucene.apache.org
>> >> Subject: RE: Rank results only on some fields
>> >>
>> >> You can construct the query using a customized query parser that
>> >> wraps all queries not with the suggested field name using a "new
>> >> ConstantScoreQuery(new QueryWrapperFilter(originalCreatedQuery))".
>> >> Override
>> >> newFieldQuery() to do that and pass the super call to this ctor chain.
>> >>
>> >> Uwe
>> >>
>> >> -----
>> >> Uwe Schindler
>> >> H.-H.-Meier-Allee 63, D-28213 Bremen
>> >> http://www.thetaphi.de
>> >> eMail: u...@thetaphi.de
>> >>
>> >>
>> >> > -----Original Message-----
>> >> > From: Philippe [mailto:mailer.tho...@gmail.com]
>> >> > Sent: Saturday, July 31, 2010 10:04 AM
>> >> > To: java-user@lucene.apache.org
>> >> > Subject: Rank results only on some fields
>> >> >
>> >> > Hi,
>> >> >
>> >> > I want to rank my results only on parts of my query.  E.g my query
>> >> > is "TITLE:Lucene AND AUTHOR:Manning". After this query standard
>> >> > lucene ranking for both fields take place.
>> >> >
>> >> > However, is it possible to query the index using the full query and
>> >> > rank results only according to the "TITLE"-Field?
>> >> >
>> >> > Regards,
>> >> >      Philippe
>> >> >
>> >> > -------------------------------------------------------------------
>> >> > -- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>> >> > For additional commands, e-mail: java-user-h...@lucene.apache.org
>> >>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>> >> For additional commands, e-mail: java-user-h...@lucene.apache.org
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>> > For additional commands, e-mail: java-user-h...@lucene.apache.org
>> >
>> >
>>
>>
>>
>> --
>> Lance Norskog
>> goks...@gmail.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>



-- 
Lance Norskog
goks...@gmail.com

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to