Jeśli jesteś na Solr 1.4+, wtedy masz dostęp do funkcji „MS” w zapytaniach funkcji i standardu podejście podręcznik do pobudzenia przez recency jest:
recip(ms(NOW,startTime),3.16e-11,1,1)
ms podaje liczbę milisekund między dwoma argumentami. Wyrażenie jako całość zwiększa wyniki o 1 dla dokumentów z datą teraz, o 1/2 dla dokumentów datowanych 1 rok temu, o 1/3 dla dokumentów sprzed 2 lat itp. (Patrz http://wiki.apache.org/solr/FunctionQuery#Date_Boosting, jak wskazał Sean Timm.)
w twoim przypadku masz dokumenty datowane w przyszłości, a te będą przydzielane negatywny wynik od powyższej funkcji, więc prawdopodobnie będzie chciał rzucić w wartości bezwzględnej, jak to:
recip(abs(ms(NOW,startTime)),3.16e-11,1,1)
abs (ms (TERAZ, startTime)) da # milisekund między startTime i teraz, z gwarancją nieujemności.
To byłoby dobre miejsce początkowe. Jeśli chcesz, możesz zmodyfikować 3.16e-11, jeśli jest zbyt agresywny lub mało agresywny.
Stycznie funkcja ms działa tylko na polach opartych na klasie TrieDate, a nie na klasach klasy Date i LegacyDate. Jeśli twój plik schema.xml był oparty na przykładzie dla Solr 1.4, to pole daty prawdopodobnie ma już prawidłowy format.
czy próbowałeś pytać o użytkownika solr? –