2011-09-26 6 views
1

Solr 통합 검색 API 측면 검색을 사용하여 등급별로 노드를 정렬하려고합니다. 나는 이미 fivestar 등급 (노드 당 약 9 개, 다축 등급 시스템)을 설정했지만이 등급에 대한 색인을 생성 할 수 없습니다!검색 API Solr fivestar (또는 유사한) 등급 시스템 (fascet 및 정렬)

나를 평가하기 위해 패싯 검색을 사용할 수 있도록 누군가를 변경하는 방법을 이해할 수 있도록 도와 줄 수 있습니까?

그렇지 않으면 투표를 색인 할 수있는 다른 모듈 (fivestar는 제외)에 대한 권장 사항이 있습니까?

감사합니다. 저스틴

답변

1

먼저 패싯에 대한 하시면서 facetapi 모듈을 설치해야합니다. 두 번째는, hook_update_index에, 당신은 그냥 예입니다,

<?php function module_apachesolr_update_index(&$document, $node) { 
    //add additional offers; 
    if (count($node->field_add_offers)) { 
     $field = $node->field_add_offers; 
     foreach ($field as $lang => $values) { 
     foreach ($values as $value) { 
      if (isset($value['value'])) { 
      $document->setMultiValue('sm_offers', $value['value']); 
      } 
     } 
     } 
    } 
} ?> 

있습니다 apachesolr 인덱스에 등급을 추가해야합니다. 다국어 사이트 및 필드 배열의이 "und"키 문제로 인해 2 개의 루프를 실행합니다. (당신이 등급에 해당이없는 경우) 정렬에 사용됩니다 노드 당 여기에 또한 예를 들어, 모든 등급을 추가 할 수 있지만 계산할 수없는 한 수정,

셋째,

을 hook_facetapi_facet_info 사용하여면을 추가
<?php function module_facetapi_facet_info(array $searcher_info) { 
    return array(
    'sm_games_facet' => array(
     'name' => 'sm_games_facet', 
     'label' => t('games'), 
     'description' => t('Filter games'), 
     'field' => 'sm_games', 
     'field alias' => 'game', 
     'query type' => 'term', 
     'default widget' => 'facetapi_links', 
     'allowed operators' => array(FACETAPI_OPERATOR_OR => TRUE, FACETAPI_OPERATOR_AND => TRUE), 
     'default sorts' => array(
     array('display', SORT_ASC), 
    ), 
    ) 
); 
} ?> 

facetapi.api.php 파일에서 자세한 내용을 확인할 수 있습니다.

네 번째 - 콘텐츠를 다시 색인화하여 apachesolr 설정에서 패싯을 사용하도록 설정합니다.

감사 슬라바

+0

이 또한 SOLR 검색과 태양 API를 위해 사용할 수 있습니까? 나는 아파치 검색 통합을 사용하지 않고있다. 그러나 나는 이것이 그 길로가는 나의 결심을 만들거나 깨뜨릴지도 모른다라고 생각한다. – stopshinal

+0

mhmh, apachesolr - 모듈의 이름으로, Drupal과 solr 통합을 제공합니다. schema.xmk 및 solrconfig도 제공하므로 drupal은 Solr과 통신 할 수 있습니다. 그건 아파치 검색이 아니에요, 그냥 이런 방식으로 호출됩니다. – 32i

+0

https://www.drupal.org/project/apachesolr 대 https://www.drupal.org/project/search_api_solr. 이것은 drupal에서 두 개의 다른 모듈입니다. 그래서 나는 그것이 작동하지 않을 것이라고 생각합니다. – zsd