Поддержка документов SOLR / LUCENE с определенной категорией / тегами - имитация функции 'IF' - PullRequest
2 голосов
/ 03 октября 2011

Проблема: добавьте 2-кратное повышение для документов с категорией = 999. Solr vesion: 3,2

Пробовал использовать:

  • БК компонент bq=category_id:999^2

-> это недопустимо, поскольку генерирует аддитивное (не мультипликативное) усиление

-> термин запрос не возвращает 1 или 0, но значение люцена должно быть нормализовано

  • ЕСЛИ функция

-> еще не в Solr 3.2, будет доступен в следующем выпуске: https://issues.apache.org/jira/browse/SOLR-2136

1 Ответ

1 голос
/ 05 октября 2011

Вы пробовали аддитивное повышение и обнаружили, что оно не работает?Мой опыт показывает, что в большинстве случаев этот метод работает очень хорошо.

Если вы хотите, вы можете упростить формулу оценки как sum_t match(t) * boost(t) с match(x) в {0,1}, тогда запрос foo (+foo +category:9999) удваиваетоценка относительно foo.Фактическая формула оценки содержит термины нормализации и т. Д., Которые, вероятно, сделают невозможным точное удвоение, но, если вы действительно мотивированы, вы сможете ее решить - формула будет здесь .

Конечно, вы всегда можете написать свой собственный весовой класс.

...