Drupal ApacheSolr查询过滤内容的语言

时间:2013-10-22 20:51:26

标签: drupal solr drupal-7 drupal-modules

我是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”之间究竟有什么区别,以及如何将表单中选定的语言选项传递给查询。您能否进一步解释如何做到这一点?

1 个答案:

答案 0 :(得分:0)

使用search_api_solr模块。通过使用它,您可以创建用于搜索的视图公开表单,您可以在公开的过滤器中使用所有节点字段(语言,nid,标题等...),而不需要编写任何形式的alter code。