SOLR - Повысьте функцию (bf) для увеличения счета документов, дата которых является самой близкой к ТЕПЕРЬ

У меня есть solr экземпляр, содержащий документы, которые имеют 'startTime' поле в пределах от прошлого месяца к году с этого времени. Я хотел бы добавить запрос/функцию повышения для повышения множества документов, startTime поле которых близко к текущему времени.

До сих пор я видел много примеров, которые используют rord для добавления повышений документов, кого является более новым, но я никогда не видел примера чего-то вроде этого.

Кто-либо может сказать мне, как сделать это?

Спасибо

8
задан Mechanic 28 September 2009 в 13:12
поделиться

2 ответа

Если вы используете Solr 1.4+, у вас есть доступ к функции "ms" в запросах функций и стандартному учебному подходу к ускорению с помощью недавность:

recip(ms(NOW,startTime),3.16e-11,1,1)

мс - количество миллисекунд между двумя его аргументами. Выражение в целом повышает оценку на 1 для документов, датированных сейчас, на 1/2 для документов, датированных 1 год назад, на 1/3 для документов, датированных 2 года назад и т. Д. (См. http: // wiki. apache.org/solr/FunctionQuery#Date_Boosting, как указал Шон Тимм.)

В вашем случае у вас есть документы, датированные в будущем, и им будет присвоена отрицательная оценка вышеуказанной функцией, поэтому вы, вероятно, хотел бы добавить абсолютное значение, например:

recip(abs(ms(NOW,startTime)),3.16e-11,1,1)

abs (ms (NOW, startTime)) даст # миллисекунд между startTime и now, гарантированно неотрицательным.

Это было бы хорошей отправной точкой. Если вы хотите, вы можете настроить 3.16e-11, если он слишком агрессивен или недостаточно агрессивен.

По существу, функция ms будет работать только с полями, основанными на классе TrieDate, а не с классическими классами Date и LegacyDate. Если ваш schema.xml был основан на примере для Solr 1.4, то ваше поле даты, вероятно, уже имеет правильный формат.

16
ответ дан 5 December 2019 в 10:04
поделиться

В Solr 1.4 можно выполнять вычисления дат.

http://wiki.apache.org/solr/FunctionQuery#Date_Boosting

1
ответ дан 5 December 2019 в 10:04
поделиться