lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pdaures <patrick.dau...@gmail.com>
Subject RE: Boost Problem (again), need example !
Date Mon, 22 Feb 2010 13:19:52 GMT

It WORKS !

Thank you so much, I spent a lot of time trying to do that, thank you again
!


Uwe Schindler wrote:
> 
> The simple fix for that is to wrap the subQuery using: new
> ConstantScoreQuery(new QueryWrapperFilter(query)) - after that its score
> is constant and the ValueSource only scores.
> 
> I recommend to use NumericField for indexing this boost (no storing
> needed, only indexing, precisionStep=Integer.MAX_VALUE). Else (if using
> standard Field) the boost field does not need to be "stored", it must be
> indexed as NOT_ANALYZED. 
> 
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
> 
> 
>> -----Original Message-----
>> From: Ian Lea [mailto:ian.lea@gmail.com]
>> Sent: Monday, February 22, 2010 12:26 PM
>> To: java-user@lucene.apache.org
>> Subject: Re: Boost Problem (again), need example !
>> 
>> boostField needs to be indexed to be used in the FieldScoreQuery.
>> 
>> Are you now using one of the the latest releases that Uwe mentioned,
>> with fixes for CustomScoreQuery?
>> 
>> And unless you provide your own implementation of
>> CustomScoreQuery.customScore() I think that you are still not
>> guaranteed to get what you want since the default implementation is to
>> calculate the score as subQueryScore * valSrcScore.
>> 
>> 
>> --
>> Ian.
>> 
>> 
>> On Mon, Feb 22, 2010 at 11:00 AM, pdaures <patrick.daures@gmail.com>
>> wrote:
>> >
>> > HI !
>> > Thank you for your help.
>> > I think I don't use CustomScoreQuery correctly when I do a "search".
>> >
>> > BooleanQuery combinedQuery = new BooleanQuery();
>> > combinedQuery.add(textQuery, Occur.MUST);
>> > combinedQuery.add(titleQuery, Occur.MUST);
>> >
>> > CustomScoreQuery customQuery = new CustomScoreQuery(combinedQuery,new
>> > FieldScoreQuery(BOOST_FIELD,Type.INT));
>> >
>> > indexSearcher.search(..., customQuery, ....).
>> >
>> > in order to index the BOOST_FIELD, I do that :
>> > Field boostField = new Field(BOOST_FIELD, Integer.toString(boost),
>> > Field.Store.YES, Field.Index.ANALYZED.NO);
>> >
>> >
>> > Is that correct ?
>> > Thank you
>> >
>> >
>> >
>> >
>> > Uwe Schindler wrote:
>> >>
>> >> It's CustomScoreQuery in 2.9 and 3.0.
>> >>
>> >> Please wait for 2.9.2 and 3.0.1 for an important API change in this
>> >> experimental query type to work correct with the new per-segment-
>> search!
>> >> You can test the release artifacts of both new versions here:
>> >> http://people.apache.org/~uschindler/staging-area/lucene-292-301-
>> take2-rev912433/
>> >>
>> >> With e.g. ValueSourceQuery you can score your documents using a
>> separate
>> >> numeric field from your documents (it uses FieldCache).
>> >>
>> >> Uwe
>> >>
>> >> -----
>> >> Uwe Schindler
>> >> H.-H.-Meier-Allee 63, D-28213 Bremen
>> >> http://www.thetaphi.de
>> >> eMail: uwe@thetaphi.de
>> >>
>> >>> -----Original Message-----
>> >>> From: Ian Lea [mailto:ian.lea@gmail.com]
>> >>> Sent: Monday, February 22, 2010 10:33 AM
>> >>> To: java-user@lucene.apache.org
>> >>> Subject: Re: Boost Problem (again), need example !
>> >>>
>> >>> Can't you simply sort by descending score (your score, not
>> lucene's)?
>> >>> Seems to me that would give you what you are asking for.
>> >>>
>> >>> The setBoost() method is unlikely to work consistently because it
>> only
>> >>> infuences the score rather than setting it.  If your John Mickeal
>> doc
>> >>> happens to have a higher lucene score, because of the normal
>> >>> idf/tf/etc stuff, then the setBoost() with a higher value for John
>> >>> Smith may well not be enough to force John Smith to the top.
>> >>>
>> >>> I don't know enough about function queries to help you much there
>> but
>> >>> FieldScoreQuery might work.  I can't see any sign of class
>> >>> FunctionQuery in the 3.0.0 core package so am not clear what that
>> is.
>> >>>
>> >>>
>> >>> --
>> >>> Ian.
>> >>>
>> >>>
>> >>>
>> >>> On Mon, Feb 22, 2010 at 8:54 AM, pdaures <patrick.daures@gmail.com>
>> >>> wrote:
>> >>> >
>> >>> > Hi,
>> >>> > I know that there are many topics about scoring issues, but I
>> didn't
>> >>> find an
>> >>> > answer in the topics.
>> >>> > This is the problem :
>> >>> > Imagine I'm a teacher, and I have to index all the results,
>> comments
>> >>> and
>> >>> > score about students.
>> >>> >
>> >>> > Student :
>> >>> > String name (eg : John Smith)
>> >>> > String comments : (eg: John is a good student, but he needs to
be
>> >>> more self
>> >>> > confident bla bla bla)
>> >>> > float score (eg : 98)
>> >>> >
>> >>> > I have to index all the students and when I use the search class,
>> I
>> >>> want to
>> >>> > get first the best students. So, if John Smith is a better
>> student
>> >>> than John
>> >>> > Mickael, when I search "John" I want to have John Smith BEFORE
>> John
>> >>> Mickeal.
>> >>> >
>> >>> > To do that, I'm using BooleanQuery to search in name and comment
>> >>> fields.
>> >>> >
>> >>> > First, I thought I could use the function Document.setBoost(float
>> >>> boost)
>> >>> > while indexing student, with boost = Student.score. But the
>> result
>> >>> was not
>> >>> > what I was expected, it didn't work correctly.
>> >>> >
>> >>> > Then I thought I could use a FunctionQuery to search :
>> >>> > FunctionQuery functionQuery = new FunctionQuery(new
>> >>> > ReverseOrdFieldSource("score"));
>> >>> > But the result was still incorrect.
>> >>> >
>> >>> > I don't know what I'm doing wrong. Could you help me to find a
>> >>> solution ?
>> >>> > Thank you :)
>> >>> > --
>> >>> > View this message in context: http://old.nabble.com/Boost-
>> Problem-
>> >>> %28again%29%2C-need-example-%21-tp27684388p27684388.html
>> >>> > Sent from the Lucene - Java Users mailing list archive at
>> Nabble.com.
>> >>> >
>> >>> >
>> >>> > -----------------------------------------------------------------
>> ----
>> >>> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> >>> > For additional commands, e-mail: java-user-help@lucene.apache.org
>> >>> >
>> >>> >
>> >>>
>> >>> -------------------------------------------------------------------
>> --
>> >>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> >>> For additional commands, e-mail: java-user-help@lucene.apache.org
>> >>
>> >>
>> >>
>> >> --------------------------------------------------------------------
>> -
>> >> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> >> For additional commands, e-mail: java-user-help@lucene.apache.org
>> >>
>> >>
>> >>
>> >
>> > --
>> > View this message in context: http://old.nabble.com/Boost-Problem-
>> %28again%29%2C-need-example-%21-tp27684388p27685594.html
>> > Sent from the Lucene - Java Users mailing list archive at Nabble.com.
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> > For additional commands, e-mail: java-user-help@lucene.apache.org
>> >
>> >
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Boost-Problem-%28again%29%2C-need-example-%21-tp27684388p27687065.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


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


Mime
View raw message