2010-05-21 4 views
1

Я создал обработчик запросов в Solr, который использует smax и ограничивает мой запрос определенными полями и добавляет повышения для релевантности в поле «title».При использовании SolrJ я могу указать его на обработчик запроса?

Все это прекрасно работает, когда я перехожу непосредственно в Solr, используя http-запрос в браузере. Однако мой вопрос заключается в том, могу ли я использовать обработчик запроса, если я обращаюсь к Solr, используя SolrJ?

Было бы лучше, если бы я мог контролировать усиление и фильтры и т. Д. В обработчике запросов, а не вносить изменения в код, но я не вижу, как указать обработчик запроса в API.

Любые идеи?

ответ

5

В классе SolrQuery существует метод setRequestHandler, который позволяет это сделать. Вы передаете имя обработчика запроса, как определено в файле solrconfig.xml (возможно, «dismax»).

+0

Спасибо! Это работает. – Pinguthepenguin

+0

Начиная с Solr 3.6 обработка 'requestDispatcher' параметра ** qt param ** по умолчанию установлена ​​в значение false. См. [Solr wiki] (http://wiki.apache.org/solr/SolrRequestHandler#Old_handleSelect.3Dtrue_Resolution_.28qt_param.29). – cuh

+4

В solr 4.x, это setRequestHandler – Philippe