我正在使用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 /处理程序返回我们想要的结果。
答案 0 :(得分:0)
好的,我们想出了如何做到这一点:
为了选择Solr在从Drupal发送请求时使用的处理程序,我们必须编辑" hook_apachesolr_query_alter"功能并添加以下代码:
$query->addParam(‘qt’, ‘MyHandlerName’);
我们做了一些额外的编码,允许我们直接从后台更改Handler,以便能够在不触及代码的情况下切换处理程序。