2016-09-29 3 views
0

우리는 드루팔 (Drupal 7)에서 특정 노드에 대한 검색 결과를 삭제하려고 시도했습니다. 우리는 변경할 수 없습니다. 특정 노드에 대한 Apache solr 검색 결과를 제거 할 수 있습니까? 아무도 우리를 도울 수 있습니까?드루팔 (Drupal 7 아파치 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가 제공된 특정 노드를 제외한 모든 노드가 포함됩니다.

귀하의 사이트에 많은 콘텐츠가 있다는 것을 고려하면 가장 빠른 해결책입니다.

관련 문제