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: u...@thetaphi.de > > >> -----Original Message----- >> From: Ian Lea [mailto:ian....@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.dau...@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: u...@thetaphi.de >> >> >> >>> -----Original Message----- >> >>> From: Ian Lea [mailto:ian....@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.dau...@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-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 >> >> >> >> >> >> >> > >> > -- >> > 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-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 > > > -- 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-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org