1
我試圖通過評級使用搜索API分面搜索與Solr集成來對節點排序。我已經設置了五星級的評級(每個節點約9個,它是一個大型的多軸評級系統),但我無法對這些評級進行索引!搜索API Solr與五星(或類似的)評級系統集成(插值和排序)
有人可以幫我理解如何改變這個,所以我可以使用方面搜索評級?
否則,是否有其他模塊(除五星以外)的任何建議可以讓投票被索引?
謝謝!
賈斯汀
我試圖通過評級使用搜索API分面搜索與Solr集成來對節點排序。我已經設置了五星級的評級(每個節點約9個,它是一個大型的多軸評級系統),但我無法對這些評級進行索引!搜索API Solr與五星(或類似的)評級系統集成(插值和排序)
有人可以幫我理解如何改變這個,所以我可以使用方面搜索評級?
否則,是否有其他模塊(除五星以外)的任何建議可以讓投票被索引?
謝謝!
賈斯汀
首先你需要安裝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']);
}
}
}
}
} ?>
請注意,這只是一個例子。我運行了2個循環,因爲多語言網站和該字段數組中的「und」鍵存在問題。這裏你也不能添加所有的評級,但是可以計算出每個節點的一個修飾符,這將用於排序(如果你沒有評級)
第三,使用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),
),
)
);
} ?>
更多關於facet的信息可以在facetapi.api.php文件中找到;
第4 - 重新索引內容並啓用apachesolr設置的方面。
問候,斯拉瓦
這也適用於Solar API與SOLR搜索?我沒有使用Apache搜索集成。但我想這可能會影響或阻礙我決定走這條路。 – stopshinal
mhmh,apachesolr - 這是模塊的名稱,它提供了與Drupal的solr集成。它也提供schema.xmk和solrconfig,所以drupal可以和Solr通信。 這不是apache搜索,它只是以這種方式調用。 – 32i
https://www.drupal.org/project/apachesolr與https://www.drupal.org/project/search_api_solr。這是drupal中的兩個不同的模塊,所以我認爲它不會工作。 – zsd