Как правильно повысить результаты в запросе Solr Dismax

StackOverflow https://stackoverflow.com/questions/634636

  •  10-07-2019
  •  | 
  •  

Вопрос

Мне удалось создать в Solr индекс, по которому я могу искать по ключевым словам, создавать фасеты, фасеты запросов и т. д. Все это прекрасно работает. Я реализовал свой поиск с использованием запроса dismax, чтобы он выполнял поиск в заданных полях.

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

http://wiki.apache.org/solrk0b0d0r0d0r0r0r0r0r0rrrrrrrrr_1_s_r_d_ru_t_t_t_t_t_t_t_m_m_b_1_1_k_1_t_t_t_b_t_t_b_t_t_b_t_t_l_t__t_c__t_c__t__t_c__t_t__t_t_m_m_t_t__t_t_m_m_d_t_m_t_m_t_t_m_m_t__t_c__t_t__t_t__t_t_m_m_m_t_ '' '' -

.

Не особенно полезно. Я попытался добавить добавление аргумента bq в свой поиск:

&bq=media:DVD^2

(да, это индекс фильмов!), но я нахожу, когда начинаю добавлять все больше и больше:

&bq=media:DVD^2&bq=media:BLU-RAY^1.5

Я нахожу отрицательные результаты - например, фильмы на DVD, но не BLU-RAY, негативно влияют на их результаты. В конце концов, кажется, все выровнялось, и мой результат остался таким же, каким был до того, как я начал повышаться.

Я, должно быть, делаю это неправильно, и мне интересно, есть ли "функция повышения" " приходит куда-то Любые идеи о том, как правильно использовать boost?

Это было полезно?

Решение 2

Очевидно, это нормально для фильмов, которые на DVD, но не BLU-RAY, негативно влияют на их счет. Это связано с тем, что чем больше ограничений вы добавляете, тем больше уменьшается значение queryNorm - и все оценки умножаются на это значение.

Другие советы

Это немного поздно, и, похоже, у вас уже есть то, что вы ищете, но ...

Если вам интересно узнать о расширенных функциях (которые, судя по вашим желаемым результатам, думаю, так и должно быть), вам следует проверить аргумент bf вместо < Аргумент code> bq .

Попробуйте установить для аргумента bf значение

media:DVD^2 media:BLU-RAY^1.5

и я думаю, что может достичь того, что вы хотите.

Звучит так, как будто вы должны применить усиление во время индекса, а не во время запроса. Поэтому, когда вы готовите документы для добавления в индекс, дайте тем, у кого DVD, повышение 2, а тем, что Blu-Ray, повышение 1,5.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top