我是 ApacheSolr 搜索的新手。我正在尝试修改 ApacheSolrQuery 以过滤内容的语言。我首先修改了搜索表单:
function myips_form_alter(&$form, &$form_state, $form_id) {
if($form_id=='apachesolr_search_custom_page_search_form'){
$form['languages_options'] = array(
'#type' => 'value',
'#value' => array('ar' => t('Arabic'),
'en' => t('English'),
'und' => t('Neutral'))
);
$form['type'] = array(
'#title' => t('Language'),
'#type' => 'select',
'#description' => "Select the Language of the content",
'#options' => $form['languages_options']['#value'],
);
}
}
我的 ApacheSolr 管理页面显示 ss_language 字段已默认编入索引(所以我认为我不需要将其添加到索引中)。我知道需要传递语言选项的参数并更改我的 ApacheSolr。我已经阅读了 form_apachesolr_query_alter($query) 但我不明白如何使用它,以及“addFilter”和“addParam”之间的区别以及如何将表单中选定的语言选项传递给查询。您能否进一步解释如何做到这一点?