Thanks very much for your helps! I got the point, only problem is that I cannot afford to to use FieldCache because in our app we have many lucene index data folders, is there another simple way?
Thanks again, Lisheng -----Original Message----- From: Simon Willnauer [mailto:simon.willna...@googlemail.com] Sent: Wednesday, November 30, 2011 11:40 AM To: java-user@lucene.apache.org Subject: Re: Boost more recent document On Wed, Nov 30, 2011 at 6:59 PM, Zhang, Lisheng <lisheng.zh...@broadvision.com> wrote: > Hi, > > We need to boost document which is more recent (each doc has time stamp > attribute). It seems that > we cannot use doc boost at index time because it will be condensed into one > byte (cannot differentiate > 365 days), so we may use payload (save time stamp as payload) to boost at > search time. > > In our app we let user enter query at browser and use QueryParser to generate > query, the query can > be different types (TermQuery, BooleanQuery, WildcardQuery, ...), then it > seems we need to create > each customized query class similar to PayloadTermQuery, is there another > simpler way? you can simply index your timestamp (untokenzied) and wrap your query in a CustomScoreQuery. This query accepts your user query and a ValueSource. During search CustomScoreQuery calls your valuesource for each document that the user query scores and multiplies the result of the ValueSource into the score. Inside your valuesource you can simply get the timestamps from the FieldCache and calculate your custom boost... hope that helps simon > > Thanks very much for helps, Lisheng --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org