Apache Solrファセット


7

検索用にカスタムファセット/カスタムフィルターを作成する必要があります。私が持っているファセットAPIがインストールされ、誰かこれについて何か経験がありますか?理想的には、Apache Solr Facet Builderを使用しますが、これはD6でのみサポートされているようです。

回答:


5

ApacheのSolrの検索統合モジュールはあなたに非常に良いSolrの統合を提供し、それが積極的に開発して更新されます。これをインストールしたら、/ admin / settings / apachesolr / enabled-filtersに移動して、コンテンツタイプの多数のフィールドに対してファセットブロックを有効にします。

さまざまなCCKフィールドが自動的にSolrに送信されますが、すべてではありません。追加のガイダンスについてはこちらをご覧ください。ファセットの有効化に関する役立つ情報がいくつか含まれているので、コメントを確認してください。記事はモジュール自体の主な著者によって書かれているので、彼は何が起こっているのかを知っています:)

また、http: //drupal.org/node/903398はcckフィールドの検索に役立ちます。検索できるのはテキストフィールドのみで、文字列は検索できません。文字列フィールドはファセットに、テキストフィールドは検索に役立ちます。


明確化のための別の注記:Apache Solr検索統合を使用してDrupal 7にファセットを追加するには、ファセットAPIモジュールもインストールする必要があります。明確にするために:-)
geerlingguy

4

ファセットAPIは、プラグインを実装することにより、カスタム表示ウィジェットを可能にします。プラグインはrender配列に完全にアクセスできるため、最終的にはファセットのルックアンドフィールを完全に制御できます。

プラグインは、execute()メソッドを持つクラスを指すhook_facetapi_widgets()を実装することによってシステムに追加されます。機能するプラグインの例については、Facet APIモジュールのplugins / facetapi / widget_links.incファイルを参照してください。Facet APIウィジェットを使用して実行できるその他の優れた例として、グラフファセットとタグクラウドファセットがあります。

プラグインのexecute()メソッドでレンダー配列を操作する方法については、http: //drupal.org/node/930760にあるDrupal 7のレンダー配列の記事を参照してください。

いくつかのコード例を以下に示します。

/**
 * Implements hook_facetapi_widgets().
 */
function mymodule_facetapi_widgets() {
  return array(
    'mymodule_mywidget' => array(
      'handler' => array(
        'label' => t('My Custom Widget'),
        'class' => 'MymoduleMywidget',
      ),
    ),
  );
}

クラスを別のファイルに追加し、次の説明に従って自動的に含まれるように設定します。http//drupal.org/node/542202

/**
 * My custom widget.
 */
class MymoduleMywidget extends FacetapiWidget {

  /**
   * Renders the widget.
   */
  public function execute() {
    $element = &$this->build[$this->facet['field alias']];

    // $element is the render array that will render the facet.
  }
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.