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 に答える