如何在从Drupal发送请求时使用Solr处理程序

时间:2015-09-16 08:19:55

标签: drupal solr drupal-7 solr-boost

我正在使用Solr 4.10.2和Drupal 7.X,我运行Apache Solr模块框架并将请求发送到Solr From Drupal。目前,当我们执行搜索时,Drupal构建查询并将其发送给Solr。 Solr只执行查询并返回结果,而不使用可以通过SolrConfig.xml配置的内部处理程序。

我想知道是否有办法从Drupal发送搜索的术语(不构建查询)并让Solr使用SolrConfig.xml中声明的内部处理程序来处理请求,构建查询然后返回数据?

这样做的原因是我们一直在尝试通过改变某些字段的“权重”来尝试在我们执行搜索(我们希望先匹配和模糊搜索结果)时尝试增加一些结果。

我们知道从Back Office我们可以使用“Bias”功能来增强某些字段,但这对我们想要实现的目标来说太有限了。

我们也知道我们可以使用hook_apachesolr_modify_query()直接从代码端更改Drupal发送的查询,但我们更喜欢尽可能少地更改代码并使用我们已经配置的SolrConfig.xml /处理程序返回我们想要的结果。

1 个答案:

答案 0 :(得分:0)

好的,我们想出了如何做到这一点:

为了选择Solr在从Drupal发送请求时使用的处理程序,我们必须编辑" hook_apachesolr_query_alter"功能并添加以下代码:

$query->addParam(‘qt’, ‘MyHandlerName’);

我们做了一些额外的编码,允许我们直接从后台更改Handler,以便能够在不触及代码的情况下切换处理程序。