Выборочная сортировка для люцена - PullRequest
0 голосов
/ 21 июля 2010

У меня есть документ с такими полями, как (заголовок, содержимое, дата и время) Я хочу отсортировать результаты по следующей формуле

1) повышение заголовка 2.5

2) повышение контента 1,5

3) ВАЖНО (увеличить те документы, которые более новые, означает, что поле даты и времени близко к дате сегодня) увеличить 3

как мне написать запрос с учетом вышеуказанных критериев что я должен сделать для # 3

любая помощь будет очень признателен.

Ответы [ 3 ]

1 голос
/ 21 июля 2010
+title:foo^2.5 +content:bar^1.5 datetime:20100721^3

Очевидно, заполните соответствующие значения для поля даты и времени. Ключевым моментом здесь является то, что термин datetime не является обязательным; это только функция увеличивает оценку для документов, которые соответствуют термину. Вы можете добавить еще один термин datetime для вчерашней даты, другой термин для предыдущего дня и т. Д., Уменьшая прирост по мере удаления от текущей даты.

0 голосов
/ 18 ноября 2015

Если вы ищете пользовательскую сортировку, основанную на вашем собственном определении, то вы можете посмотреть нижеприведенный пример.Но это только поможет вам определить свой вид на отдельном поле.Позже вы можете добавить несколько сортировок к вашему запросу.

Не совсем уверен, поможет ли это

https://github.com/smadha/lucene-sorting-example/blob/master/CustomSorter.java

0 голосов
/ 21 декабря 2011

Вы можете использовать функциональный запрос, чтобы повысить оценку для документов, содержащих каждое из текстовых полей, т.е. Название и Содержание (оба ранжированы по дате).Затем после этого умножьте увеличение свежести на ваши веса, указанные выше.

http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_boost_the_score_of_newer_documents

{!boost b=product(recip(ms(NOW,datetime),3.16e-11,1,1),2.5)}Title:<query> 
{!boost b=product(recip(ms(NOW,Created),3.16e-11,1,1),1.5)}Content:<query>

Вы не можете использовать сортировку, поскольку упорядочение вторичных и третичных сортов будет бессмысленным, если, конечно, точность ваших дат достаточно низка.1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...