まず、ファセット用の facetapi モジュールをインストールする必要があります。次に、hook_update_index で、apachesolr インデックスに評価を追加する必要があります
<?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']);
}
}
}
}
} ?>
あくまで一例ですのでご了承ください。多言語サイトと、フィールド配列のこの「und」キーの問題のために、2 つのループを実行します。ここでも、すべての評価を追加することはできませんが、たとえばノードごとに 1 つの修飾子を計算して、並べ替えに使用します (評価にその修飾子がない場合)。
3 番目に、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 ファイルで見つけることができるファセットの詳細。
Forth - コンテンツのインデックスを再作成し、apachesolr 設定でファセットを有効にします。
よろしく、 スラバ