У меня в настоящее время есть запрос SOLR, который использует запрос (q), поля запроса (qf) и поля фразы (pf) для получения желаемых результатов. Пример:
/solr/select
?q=superbowl
&qf=title^3+headline^2+intro+fulltext
&pf=title^3+headline^2+intro+fulltext
&fl=id,title,ts_modified,score
&debugQuery=true
Идея состоит в том, что заголовок и заголовок "основного элемента" дают лучшее представление о том, что является результатом "примерно", но вводная часть и полный текст также предоставляют некоторую информацию. Т.е. представьте коллекцию ссылок, в которой сама коллекция содержит метаданные (то, чем она является), но каждая ссылка имеет свои собственные данные (название ссылки, краткий обзор и т. Д.). Если мы ищем «superbowl», наиболее релевантными являются результаты с «superbowl» в метаданных коллекции, наименее релевантными являются результаты с «superbowl» в кратком обзоре одной из ссылок ... но они все действительные результаты.
То, что я пытаюсь сделать, - это повысить оценку релевантности, чтобы самые последние результаты перемещались вверх, но сохраняя заголовок, заголовок, вступление, полный текст как часть формулы. Недавний результат со строкой поиска в метаданных коллекции будет более релевантным, чем результат, содержащий только метаданные ссылок ... но недавний результат "только ссылки" может быть более релевантным, чем очень старый результат со строкой поиска в метаданные коллекции. (Надеюсь, это понятно).
Проблема в том, что я не могу понять, как объединить функцию наддува, задокументированную на сайте SOLR, с использованием полей qf / pf. В частности ...
На сайте SOLR что-то вроде следующего работает для увеличения результатов по дате:
/solr/select
?q={!boost%20b=$dateboost%20v=$qq}
&dateboost=ord(ts_modified)
&qq=superbowl
&fl=ts_modified,score
&debugQuery=true
Однако я не могу понять, как объединить этот запрос с использованием qf и pf. Любые предложения будут более чем приветствоваться.
Благодаря ответу Данбена я смог придумать следующее:
/solr/select
?q={!boost%20b=$dateboost%20v=$qq%20defType=dismax}
&dateboost=ord(ts_modified)
&qq=superbowl
&qf=title^3+headline^2+intro^2+fulltext
&pf=title^3+headline^2+intro^2+fulltext
&fl=ts_modifieds,score
&debugQuery=true
Похоже, у меня были настоящие проблемы:
- Я оставил пробелы в параметре q вместо экранирования (% 20) при копировании / вставке
- Я не включил defType = dismax в свой параметр q, чтобы он обращал внимание на параметры qf / pf