EGOCMS  24.0
EGOTEC Content-Managament-System
Ego_Search Klassenreferenz
+ Klassendiagramm für Ego_Search:

Öffentliche Methoden

 delete ( $index)
 
 reset ()
 
 update ($index, $page)
 
 search ($search, $relation, $query)
 
 globalSearch ($search, $sites=array(), $query=array(), $param=array(), $sort=array(), $filter='')
 
 filterContent ($content, $k='extra')
 
 filterExtra ($page)
 
 setExtraQuery ($query, $bind=array())
 
 clearCache ()
 
 getSuggestions ($query, $sites=[], $max=5)
 
 getCorrections ($query, $sites=[], $max=3)
 

Geschützte Methoden

 sortPages ($pages, $order='', $sort=array())
 
 _getContent ($page, $k)
 
 _getExtra ($page, $clean=false)
 
 prepareSearch ($search, $filter='', $original=false, $fuzzy=false)
 
 checkSearch ($search)
 

Geschützte Attribute

 $config = []
 
 $extraQuery = ''
 

Ausführliche Beschreibung

Definiert in Zeile 8 der Datei Ego_Search.php.

Dokumentation der Elementfunktionen

◆ _getContent()

_getContent (   $page,
  $k 
)
protected

Inhalt für einen Schlüssel ermitteln

Parameter
Page$pageDie zu indizierende Seite.
string$kSchlüssel
Rückgabe
string

Definiert in Zeile 166 der Datei Ego_Search.php.

Benutzt Ego_System\arrayFlatRecursive(), Ego_System\arrayValuesRecursive(), filterContent() und filterExtra().

Wird benutzt von Ego_Search_Sql\update().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:
+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ _getExtra()

_getExtra (   $page,
  $clean = false 
)
protected

Alle Key-Value-Paare als flaches Array zurückliefern

Parameter
Page$page
boolean$cleanNur sinnvolle Werte ermitteln
Rückgabe
array

Definiert in Zeile 281 der Datei Ego_Search.php.

Benutzt Ego_System\arrayFlatRecursive(), filterContent() und filterExtra().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

◆ checkSearch()

checkSearch (   $search)
protected

Die Länge des Suchstrings prüfen und ggf. einen Fehler ausgeben

Parameter
string$search
Rückgabe
void

Definiert in Zeile 595 der Datei Ego_Search.php.

Wird benutzt von globalSearch() und Ego_Search_Sql\search().

+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ clearCache()

clearCache ( )

Cache leeren.

Erneute Implementation in Ego_Search_Elastic.

Definiert in Zeile 585 der Datei Ego_Search.php.

◆ delete()

delete (   $index)
abstract

Einen Eintrag im Index löschen.

// Beispiel:
if( $suche->delete( 5 ) === true )
{
echo "Index 5 wurde gelöscht!\n";
}
static start($table='', $param=[], $checkHealthy=false)
Parameter
integer$indexDer Index des Eintrags.
Rückgabe
boolean true, bei erfolg.

Erneute Implementation in Ego_Search_Sql und Ego_Search_Elastic.

◆ filterContent()

filterContent (   $content,
  $k = 'extra' 
)

Den Inhalt vor der Verwendung säubern

Parameter
string$content
string$k
Rückgabe
string

Definiert in Zeile 299 der Datei Ego_Search.php.

Wird benutzt von _getContent() und _getExtra().

+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ filterExtra()

filterExtra (   $page)

Das Extra Feld vor der Verwendung säubern

Parameter
array$page
Rückgabe
array

Definiert in Zeile 325 der Datei Ego_Search.php.

Wird benutzt von _getContent() und _getExtra().

+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ getCorrections()

getCorrections (   $query,
  $sites = [],
  $max = 3 
)

Korrekturen für ein Suchmuster ermitteln

Parameter
string$querySuchmuster
array$sitesListe von Site Objekten oder Mandantennamen (Standard: aktueller Mandant)
integer$maxMaximale Anzahl an Vorschläge
Rückgabe
array

Erneute Implementation in Ego_Search_Elastic.

Definiert in Zeile 627 der Datei Ego_Search.php.

◆ getSuggestions()

getSuggestions (   $query,
  $sites = [],
  $max = 5 
)

Vorschläge für ein Suchmuster ermitteln

Parameter
string$querySuchmuster
array$sitesListe von Site Objekten oder Mandantennamen (Standard: aktueller Mandant)
integer$maxMaximale Anzahl an Vorschläge
Rückgabe
array

Erneute Implementation in Ego_Search_Elastic.

Definiert in Zeile 614 der Datei Ego_Search.php.

◆ globalSearch()

globalSearch (   $search,
  $sites = array(),
  $query = array(),
  $param = array(),
  $sort = array(),
  $filter = '' 
)

Mandantenübergreifende Suche

Parameter
string$searchSuchbegriff
array$sitesListe von Site Objekten oder Mandantennamen (Standard: alle Mandanten)
array$queryEin Query Array für die Datenbank
array$paramSite Parameter
array$sortDirekte Sortierung ansonsten über Query Order, falls angegeben
string$filterWeitere Filter
Rückgabe
array

Erneute Implementation in Ego_Search_Elastic.

Definiert in Zeile 104 der Datei Ego_Search.php.

Benutzt checkSearch(), Ego_System\getAllSites() und sortPages().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

◆ prepareSearch()

prepareSearch (   $search,
  $filter = '',
  $original = false,
  $fuzzy = false 
)
protected

Suchbegriff vorbereiten (Lucene/Elasticsearch)

Parameter
string$searchSuchbegriff
string$filterFilter
boolean$originalOhne zusätzliche Queries
boolean$fuzzyÄhnlichkeitssuche aktivieren
Rückgabe
string

Definiert in Zeile 460 der Datei Ego_Search.php.

◆ reset()

reset ( )
abstract

Den kompletten Index löschen und neu aufbauen.

Die Indextabelle wird komplett zerstört und neu erstellt.

// Beispiel:
if( $suche->reset() === false )
{
echo "Fehler! Index wurde nicht neu erstellt!\n";
}
Rückgabe
boolean true, bei erfolg.

Erneute Implementation in Ego_Search_Sql und Ego_Search_Elastic.

◆ search()

search (   $search,
  $relation,
  $query 
)
abstract

Eine Suche durchführen.

// Beispiel:
$search_query = $suche->search( 'EGOTEC', 'demo_de.id', array() );
$page_iter = $site->getPages( $search_query );
foreach( $page_iter as $seite )
{
echo "Gefunden: " . $seite->field['name'] . "\n";
}
Parameter
string$searchSuchzeichenkette.
string$relationDer Id zugehöriges Feld in der Origialanfrage (z.B.demo_de.id).
Array$queryAnfragefeld.
Rückgabe
Array Ein Query Array für die Datenbank.

◆ setExtraQuery()

setExtraQuery (   $query,
  $bind = array() 
)

Die Fulltext Query mit der Extra Suche erweitern

Die Query Syntax ähnelt SQL, wird aber nur bedingt unterstützt:

  • Vergleichs-Operatoren: =, >, >=, <, <=, !=, LIKE.
  • Logische Operatoren: AND, OR.
  • Klammern sind möglich.
  • Hochkommatas sind optional.

Ein Extra Feld muss dieses Muster haben: extra.KEY Beispiele:

  • extra.status = Online
  • extra.date_from > '2015-11-01' AND extra.date_until < '2015-12-01'
  • extra.name LIKE foobar

Mit $bind werden Werte übergeben, die für die Verwendung im generierten Query abgesichert werden. Die Schlüssel werden im übergebenen Query mit : gesetzt. Beispiel: $query: extra.name = :name $bind: ['name' => 'foobar']

Parameter
string$query
array$bind
Rückgabe
string

Erneute Implementation in Ego_Search_Elastic.

Definiert in Zeile 391 der Datei Ego_Search.php.

◆ sortPages()

sortPages (   $pages,
  $order = '',
  $sort = array() 
)
protected

Ergebnisse sortieren

Beispiele: $order = name ASC > Aufsteigend sortieren nach dem Feld "name". Nur einfache Sortierung, kein "foo ASC, bar DESC".

$sort = array('extra', 'foobar', 'desc') > Absteigend sortieren nach dem Extra Feld "foobar".

Standard: > Absteigend sortieren nach dem Feld "score".

Siehe auch
Ego_System::sortPages
Parameter
array | Page_Iterator$pages
string$orderFalls angegeben, wird die SQL ORDER BY Klausel angewendet
array$sortFalls angegeben, werden die Parameter an Ego_System::sortPages übergeben
Rückgabe
array

Definiert in Zeile 150 der Datei Ego_Search.php.

Benutzt Ego_System\sortPages().

Wird benutzt von globalSearch().

+ Hier ist ein Graph, der zeigt, was diese Funktion aufruft:
+ Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

◆ update()

update (   $index,
  $page 
)
abstract

Einen Eintrag einfügen.

// Beispiel:
if( $suche->update( 3, 'EGOTEC' ) === false )
{
echo "Index konnte nicht upgedatet werden!\n";
}
Parameter
integer$indexDer Index des Eintrags.
Page$pageDie zu indizierende Page.
Rückgabe
boolean true, bei erfolg;

Dokumentation der Felder

◆ $config

$config = []
protected

Definiert in Zeile 10 der Datei Ego_Search.php.

◆ $extraQuery

$extraQuery = ''
protected

Definiert in Zeile 91 der Datei Ego_Search.php.

Wird benutzt von Ego_Search_Sql\search().


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: