Apache Solr Facette


7

Ich muss einige benutzerdefinierte Facetten / benutzerdefinierte Filter für meine Suche erstellen. Ich habe Facet API installiert; hat jemand irgendwelche erfahrungen damit? Im Idealfall würde ich Apache Solr Facet Builder verwenden , dies scheint jedoch nur in D6 unterstützt zu werden.

Antworten:


5

Das Apache Solr Search-Integrationsmodul bietet Ihnen eine sehr gute Solr-Integration und wird aktiv entwickelt und aktualisiert. Wenn dies installiert ist, können Sie zu / admin / settings / apachesolr / enabled-filter gehen und einen Facettenblock für zahlreiche Felder Ihrer Inhaltstypen aktivieren.

Verschiedene CCK-Felder werden automatisch an Solr gesendet, jedoch nicht alle. Sehen Sie hier für einige zusätzliche Führung und überprüfen Sie die Kommentare , wie sie einige nützliche Bits von Informationen zu ermöglichen Facetten haben. Der Artikel wurde vom Hauptautor des Moduls selbst geschrieben, damit er weiß, was los ist :)

Auch http://drupal.org/node/903398 hilft Ihnen bei der Suche nach Cck-Feldern. Beachten Sie, dass Sie nur nach Textfeldern und NICHT nach Stichen suchen können. Zeichenfolgenfelder sind nützlich für Facetten, Textfelder für die Suche.


Ein weiterer Hinweis zur Verdeutlichung: Um Facetten in Drupal 7 mit Apache Solr Search Integration hinzuzufügen, muss weiterhin das Facetten-API-Modul installiert sein. Nur um klar zu sein :-)
Geerlingguy

4

Die Facetten-API ermöglicht benutzerdefinierte Anzeige-Widgets durch Implementierung eines Plugins. Das Plugin hat vollen Zugriff auf das Render-Array, sodass Sie letztendlich die vollständige Kontrolle über das Erscheinungsbild der Facetten haben.

Plugins werden dem System hinzugefügt, indem hook_facetapi_widgets () implementiert wird, die auf eine Klasse mit einer execute () -Methode verweisen. Ein Beispiel für ein funktionierendes Plugin finden Sie in der Datei plugins / facetapi / widget_links.inc im Facet API-Modul. Andere Beispiele für coole Dinge, die Sie mit Facetten-API-Widgets tun können, sind Diagrammfacetten und Tagcloud-Facetten.

Weitere Informationen zum Arbeiten mit den Render-Arrays in der execute () -Methode des Plugins finden Sie im Artikel zu Render-Arrays in Drupal 7 unter http://drupal.org/node/930760 .

Ein Beispielcode ist unten:

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

Fügen Sie die Klasse einer separaten Datei hinzu und legen Sie fest, dass sie automatisch aufgenommen wird, wie hier beschrieben: 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.
  }
}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.