Suche über Extrafelder

Falls Sie Filter erstellen möchten, die zusätzlich oder ausschließlich die Extrafelder durchsuchen, können Sie jedem getPages() Aufruf (oder anderen Methoden, Smarty Funktionen, die implizit getPages() nutzen) den zweiten Parameter param mit dem Feld extra aufrufen. Hier wird ein SQL ähnlicher Wert Query erwartet, wie z.B.:

$site->getPages(array(), array('extra' => 'extra.foo = bar'));

Dieses Beispiel würde alle Seiten ermitteln, die im Extrafeld in einer beliebigen Tiefe das Feld foo mit dem Wert bar haben.

Mehrere Abfragen lassen sich mit AND und OR verknüpfen. Folgende Operatoren stehen zur Auswahl:

  • = bzw. like: Feld entspricht/beinhaltet dem Wert.
  • !=: Wert entspricht nicht.
  • >, >=, <, <=: Wert ist größer, größergleich, kleiner oder kleinergleich.

Wenn Sie eine Ausnahme definieren möchten, also dass ein bestimmtes Extrafeld nicht gesetzt ist, verwenden Sie folgende Schreibweise mit einem ! vor dem Feld:

$site->getPages(array(), array('extra' => '!extra.foo'));

Dieses Beispiel würde alle Seiten ermitteln, die im Extrafeld das Feld foo nicht gesetzt haben.

Weitere Filter mit Lucene

Falls Sie die Lucene Suche verwenden, können Sie über das Feld filter im param Parameter den Lucene Query direkt erweitern. Bitte beachten Sie dabei die Lucene Query Syntax.

$site->getPages(array(), array('filter' => 'extra.foo:bar'));
wb_incandescent
Die Felder extra und filter können miteinander und auch zusätzlich mit dem fulltext Feld kombiniert werden.