it-swarm-eu.dev

Apache Solr Facet

Musím pro své vyhledávání vytvořit několik vlastních aspektů/vlastních filtrů. Mám Facet API nainstalován; má někdo s tím nějaké zkušenosti? V ideálním případě bych použil Apache Solr Facet Builder , ale zdá se, že to podporuje pouze D6.

7
williamsowen

Modul Apache Solr Search Integration vám dává velmi dobrou integraci Solru a je aktivně vyvíjen a aktualizován. S tímto nainstalovaným pak můžete přejít do/admin/settings/apachesolr/enabled -filtrů a povolit blok aspektů pro mnoho polí z vašich typů obsahu.

Různá pole CCK jsou automaticky odesílána na server Solr, ale ne všechna jsou. Viz zde , kde jsou nějaké další pokyny, a podívejte se na komentáře, protože mají několik užitečných informací o povolení aspektů. Článek je napsán hlavním autorem samotného modulu, takže ví, co se děje :)

Také http://drupal.org/node/903398 vám pomůže při hledání polí cck, všimněte si však, že můžete hledat pouze v textových polích a NOT bodcích. Řetězcová pole jsou užitečná pro fasety, textová pole jsou pro vyhledávání.

5
rockingskier

Facet API umožňuje vlastní widgety zobrazení implementací pluginu. Plugin má plný přístup k renderovacímu poli, takže nakonec máte úplnou kontrolu nad vzhledem a dojmem aspektů.

Pluginy jsou přidány do systému implementací hook_facetapi_widgets (), které ukazují na třídu, která má metodu execute (). Příklad funkčního pluginu naleznete v souboru pluginy/facetapi/widget_links.inc v modulu API Facet. Dalšími skvělými věcmi, které můžete s widgety API Facet API udělat, jsou fasety grafu a fasety tagcloud.

Podívejte se na Render Arrays v Drupal 7 na http://drupal.org/node/93076 , jak pracovat s maticemi vykreslení při spuštění pluginu () metoda.

Příklad kódu je níže:

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

Přidejte třídu do samostatného souboru a nastavte ji tak, aby byla zahrnuta automaticky, jak je popsáno zde: 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.
  }
}
4
Chris Pliakas

Pokud problémy přetrvávají, můžete se podívat na modul IndexTank .

1
Zohaib