0

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

4

1 回答 1

0

使用search_api_solr模块。通过使用它,您可以创建用于搜索的视图公开表单,您可以在公开过滤器中使用所有节点字段(语言、nid、标题等),而无需编写任何表单更改代码。

于 2013-10-29T15:00:38.033 回答