Well, as Hoss suggested, I have implemented my own function
(ValueSourceParser+ValueSource) :)

It's a very simple function which receives a parameter, the userId, and
returns a float value depending (with a switch-case structure just for this
demo) on it.

With this approach now I can boost (i.e. multiply Solr's score by a factor)
the results of any query by doing something like this:
http://localhost:8080/solr/Prueba/select_test?q={!boost
b=rating(usuario1)}text:grapa&fl=score

Where 'rating' is the name of my function.

Unfortunately, I still can't see which differences are between doing this or
making the product of both scores as the value for the query's sort
parameter... :(

Next step is, of course, replace that demo switch-case structure with a SQL
query to my DB/retrieval from a Solr cache.

My idea is to retrieve a <docId,recScore> map from the DB for each user that
queries our system for the "first time". Next time he/she queries it I'd
like to get his/her map from a Solr's cache (until info becomes obsolete).

Which is the best place to do it? I think I would query the DB/cache just
when the custom ValueSource is created in the ValueSourceParser's parse
call, storing the map in the ValueSource. Then my floatVal method would just
be a 'get' from my map.

I'm so close!

Thanks!



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Combining-Solr-score-with-customized-user-ratings-for-a-document-tp4040200p4041272.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to