我是ApacheSolr Search的新手。我正在尝试修改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”之间究竟有什么区别,以及如何将表单中选定的语言选项传递给查询。您能否进一步解释如何做到这一点?
答案 0 :(得分:0)
使用search_api_solr模块。通过使用它,您可以创建用于搜索的视图公开表单,您可以在公开的过滤器中使用所有节点字段(语言,nid,标题等...),而不需要编写任何形式的alter code。