0

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

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

这样做的原因是我们一直在努力通过更改某些字段的“权重”来尝试在执行搜索时(我们希望首先精确匹配和模糊搜索结果之后)来提升一些结果。

我们知道从后台我们可以使用“偏差”功能来提升一些领域,但这对于我们想要实现的目标来说太有限了。

我们还知道我们可以使用hook_apachesolr_modify_query()直接从代码端更改从 Drupal 发送的查询,但我们更喜欢更改尽可能少的代码并使用我们已经配置为根据需要返回结果的 SolrConfig.xml /handlers。

4

1 回答 1

0

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

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

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

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

于 2015-10-09T09:24:43.397 回答