Hi Federico,

I am not sure exactly what syntax would get you the functionality that you're 
looking for, but I'd recommend writing a boost function. That's what we're 
doing right now for boosting more recent results in our search engine. You'd 
somehow have to work with date math and possibly make a copy field to store the 
answer of the mathematical expression that would incorporate the NOW part...

Our boost function is "recip(div(ms(NOW,date_discount),2628000000),1,24,24." It 
goes in the "bf" parameter when using the edismax parser. Our function 
translates to "max boost set to 1 for new docs, down to .4 after 3 years." We 
came up with the time frame of the boost after creating a histogram of our 
corpus's "update_date" field values (copied to the "date_discount" field) and 
finding that monthly binning gave us the most normal distribution (as opposed 
to weekly or yearly). 

We came up this solution after lots of surfing Solr forums and reading a lot 
about date math 
(https://builds.apache.org/view/L/view/Lucene/job/Solr-reference-guide-8.x/javadoc/working-with-dates.html#date-math)
 and boost functions 
(https://builds.apache.org/view/L/view/Lucene/job/Solr-reference-guide-8.x/javadoc/the-dismax-query-parser.html#bf-boost-functions-parameter).
 

Currently, we are running a grid search optimized for nDCG that runs ~1x/week 
to give us the optimal a,b constants to sub out for the 24s in the function 
above. We plan to change this to a linear model in the future to cut down on 
the time it takes to run.

Hopefully this gives you a nice starting place!

Best,
Audrey

-- 
Audrey Lorberfeld
Data Scientist, w3 Search
IBM
audrey.lorberf...@ibm.com
 

On 9/24/19, 5:47 AM, "digi_business" <federico.co...@digibusiness.it> wrote:

    i'm facing a big problem in my SolR DB.
    My objects have a datetime field "Available_From" and a datetime field
    "Available_To". We also have a "Ranking" field for the sorting that we
    usually use desc.
    I can search correctly with direct queries (eg. give me all the items that
    are available at the moment) but when i do a regular search by other
    criteria i cannot find a way to show the items that result "available NOW"
    in the first places in the specific search results, usually sorted by
    "Ranking" field.
    How can i do this? Am I forced to write some java classes (the nearest thing
    i've found is there
    
https://urldefense.proofpoint.com/v2/url?u=https-3A__medium.com_-40devchaitu18_sorting-2Dbased-2Don-2Da-2Dcustom-2Dfunction-2Din-2Dsolr-2Dc94ddae99a12&d=DwICAg&c=jf_iaSHvJObTbx-siA1ZOg&r=_8ViuZIeSRdQjONA8yHWPZIBlhj291HU3JpNIx5a55M&m=iCvyvST3PYrt8QATUq_UaCpoHECIsgvkQgpZ1073OLg&s=bgStMXTIXUGU1HG4dIgafvDG7gDRfLDHxqV9tiPsa_8&e=
 )
    or is there a way to do with standard SolR queries?
    Will boosting work? If yes, how can i boost by the 2 "Available_From" and
    "Available_To" fields verified at the same time, and then show the other
    results sorted by "Ranking" desc ?
    Thanks in advance to everyone!
    
    
    
    --
    Sent from: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__lucene.472066.n3.nabble.com_Solr-2DUser-2Df472068.html&d=DwICAg&c=jf_iaSHvJObTbx-siA1ZOg&r=_8ViuZIeSRdQjONA8yHWPZIBlhj291HU3JpNIx5a55M&m=iCvyvST3PYrt8QATUq_UaCpoHECIsgvkQgpZ1073OLg&s=uyc4rT6s7dUYCpfdc4jZseKQ7N8HAzBNof59kkyRsxg&e=
 
    

Reply via email to