Drupal 7 Apache solr搜索模块

o2rvlv0m  于 2022-11-05  发布在  Solr
关注(0)|答案(2)|浏览(165)

我们试图在Drupal 7中删除特定节点的搜索结果。我们无法进行该更改。是否可以删除特定节点的Apache solr搜索结果?有人能帮助我们吗?

zengzsys

zengzsys1#

您可以通过在hook_apachesolr_query_alter()中向查询添加过滤器来执行此操作:

/**
 * Implementation of hook_apachesolr_query_alter().
 * 
 * @param DrupalSolrQueryInterface $query
 * @see apachesolr.interface.inc
 */
function yourmodule_apachesolr_query_alter(DrupalSolrQueryInterface $query) {
  $nid = 1234;
  $exclude = TRUE;
  $filter = apachesolr_site_hash() . '/node/' . $nid;
  $query->addFilter('id', $filter, $exclude);
}
thigvfpy

thigvfpy2#

在SOLR的搜索结果视图中(SOLR负责显示搜索结果),您可以添加带有特定节点的NID的过滤条件,然后将该条件取反,此时搜索结果将包括除了提供了NID的特定节点之外的所有节点。
这是最快的解决方案考虑到您有大量的内容在您的网站

相关问题