My first attempt was adding this to the dismax handler:

<str name="bq">pd:[NOW-1MONTH TO NOW]^5.0</str>
<str name="bq">pd:[NOW-3MONTHS TO NOW-1MONTH]^3.0</str>
<str name="bq">pd:[NOW-1YEAR TO NOW-3MONTHS]^2.0</str>
<str name="bq">pd:[* TO NOW-1YEAR]^1.0</str>

This results in scores that are quite a bit lower (9.5 max score instead of 11.7), but the order looks the same. No real change other than a higher max score (10) if I leave only the first bq entry.

I wasn't able to figure out a way to put all the ranges in one bq, everything I tried got zero results.

What am I doing wrong?


On 8/17/2010 8:36 PM, Shawn Heisey wrote:
Would I do separate bq values for each of the ranges, or is there a way to include them all at once? If it's the latter, I'll need a full example with a field name, because I'm clueless. :)

On 8/17/2010 2:29 PM, Lance Norskog wrote:
I think 'bq=' is what you want. In dismax the main query string is
assumed to go against a bunch of fields. This query is in the standard
(Lucene++) format. The query strings should handle the ^number syntax.

http://www.lucidimagination.com/search/document/CDRG_ch07_7.4.2.9

On Tue, Aug 17, 2010 at 9:40 AM, Shawn Heisey<s...@elyograg.org>  wrote:
  On 4/9/2010 7:35 PM, Lance Norskog wrote:
Function queries are notoriously slow. Another way to boost by year is
with range queries:
[NOW-6MONTHS TO NOW]^5.0 ,
[NOW-1YEARS TO NOW-6MONTHS]^3.0
[NOW-2YEARS TO NOW-1YEARS]^2.0
[* TO NOW-2YEARS]^1.0

Notice that you get to have a non-linear curve when you select the
ranges by hand.
Lance, I have worked out my major issue and now have my post date in Solr as a tdate field named "pd." I cannot however figure out how to actually send a query with a date boost like you've mentioned above. I'd like to embed it right into the dismax handler definition, but it would be good to also know
how to send it in a query myself.  Can you help?

Are the boosts indicated above a multiplier, or an addition?


Reply via email to