2016-09-29 13 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)に小さな間違いが1つあります。 $ query-> addFilter( 'id'、$ filter、$ exclude);でなければなりません。 –

+0

この問題を修正しました。あなたの助けをありがとう@ericLavault –

0

(検索結果の表示を担当する)SOLRの検索結果ビューでは、特定のノードのNIDを持つフィルタ条件を追加して、条件を否定できます。検索結果には、NIDが提供されている特定のノードを除くすべてのノードが含まれます。

これは、サイト内にたくさんのコンテンツがあることを考慮すると、最も簡単なソリューションです。