Соль даты повышения и сортировки по релевантным результатам НЕ работает должным образом - PullRequest
1 голос
/ 01 августа 2011

Я использую Solr dismax search, а также использую эту функцию recip(ms(NOW,PubDate),3.16e-11,1000,1000) для повышения даты. Все работает нормально, но есть только одна проблема.

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

например. 1) Название = Solr Lucene

Дата = 1 день

2) Заголовок = лучшая любовь, лучшая любовь любовь

Дата = 15 дней

Если пользователь выполнил поиск по запросу «solr lucene», то # 2 занимает первое место только потому, что ключевые слова повторяются в заголовке.

У меня слишком много записей, возраст которых 1,2 или 3 дня, и они даже имеют одинаковое название «SOLR LUCENE», но эти записи не появляются на первой странице только потому, что в старых записях ключевые слова повторяются в заголовке.

Я не хочу сортировать результаты целиком по дате. В настоящее время я сортирую это так. сортировка = оценка desc, дата asc

1 Ответ

2 голосов
/ 02 августа 2011

Вы не должны использовать пункт заказа, если вы используете повышение.Если вы хотите, чтобы дата была более релевантной, улучшите функцию повышения.От вас зависит, насколько велико значение даты для порядка результатов поиска.

Это также зависит от используемого вами обработчика dismax:

{!edismax boost=recip(pow(ms(NOW,PubDate),<val>),3.16e-11,1,1)}

Задайте значениевместо заполнителя <val> между 0 и 2, где 0 - почти «порядок по дате», а 2 - порядок по релевантности.

Не уверен, работает ли это для dismax, но работает для стандартного поиска solrобработчик (с другим синтаксисом, чем в примере выше) и edismax.

...