2016-09-29 101 views
0

我們試圖刪除Drupal 7中特定節點的搜索結果。我們無法進行此更改。是否有可能刪除特定節點的Apache solr搜索結果?任何人都可以幫助我們嗎?Drupal 7 Apache solr搜索模塊

+0

爲什麼你想從搜索結果中刪除嗎?我認爲添加過濾器會更有意義。 – EricLavault

回答

0

您可以通過在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); 
} 
+0

謝謝ericLavault –

+0

在代碼$ query-> addFilter('id',filter,$ exclude)中有一個小錯誤;應該是$ query-> addFilter('id',$ filter,$ exclude); –

+0

我們修復了這個問題。感謝您的幫助@ericLavault –

0

在SOLR(負責顯示搜索結果)的搜索結果視圖中,可以添加具有特定節點的NID的過濾條件,然後否定該條件。現在搜索結果將包括除提供NID的特定節點之外的所有節點。

考慮到您網站上有大量內容,這是最快的解決方案。