我们试图在Drupal 7中删除特定节点的搜索结果。我们无法进行该更改。是否可以删除特定节点的Apache solr搜索结果?有人能帮助我们吗?
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); }
thigvfpy2#
在SOLR的搜索结果视图中(SOLR负责显示搜索结果),您可以添加带有特定节点的NID的过滤条件,然后将该条件取反,此时搜索结果将包括除了提供了NID的特定节点之外的所有节点。这是最快的解决方案考虑到您有大量的内容在您的网站
2条答案
按热度按时间zengzsys1#
您可以通过在hook_apachesolr_query_alter()中向查询添加过滤器来执行此操作:
thigvfpy2#
在SOLR的搜索结果视图中(SOLR负责显示搜索结果),您可以添加带有特定节点的NID的过滤条件,然后将该条件取反,此时搜索结果将包括除了提供了NID的特定节点之外的所有节点。
这是最快的解决方案考虑到您有大量的内容在您的网站