EGOCMS  24.0
EGOTEC Content-Managament-System
Ego_Search_Sql Klassenreferenz
+ Klassendiagramm für Ego_Search_Sql:
+ Zusammengehörigkeiten von Ego_Search_Sql:

Öffentliche Methoden

 __construct ($table, $suffix='_fulltext')
 
 delete ($index)
 
 reset ()
 
 update ($index, $page, $count=array(), $recursive=true)
 
 replace ($part, $reverse=false)
 
 search ($search, $relation, $query, $use_query_andorscore=false, $id_field='id', $name_field='name', $count_field='count', $cond_field='', $more_tables='', $more_where='', $score_select='', $lower=false)
 

Statische öffentliche Attribute

static $replace_source = array('ä', 'ö', 'ü', 'ß')
 
static $replace_target = array('ae', 'oe', 'ue', 'ß')
 

Weitere Geerbte Elemente

Ausführliche Beschreibung

Verwaltet den Suchindex und führt eine Suche darin durch.

Autor
heiko $Id$

Definiert in Zeile 14 der Datei Ego_Search_Sql.php.

Beschreibung der Konstruktoren und Destruktoren

◆ __construct()

__construct (   $table,
  $suffix = '_fulltext' 
)

Die Suche initialisieren.

Parameter
string$tableDie Tabelle für den Suchindex setzt sich aus dem Basisnamen
string$suffixund einem Suffix zusammen.

Definiert in Zeile 27 der Datei Ego_Search_Sql.php.

Dokumentation der Elementfunktionen

◆ delete()

delete (   $index)

Einen Eintrag löschen.

Parameter
integer$indexDer Index des Eintrags.

Erneute Implementation von Ego_Search.

Definiert in Zeile 38 der Datei Ego_Search_Sql.php.

◆ replace()

replace (   $part,
  $reverse = false 
)

Die Zeichenkette mit synonymen Zeichen ersetzen.

Aus a wird z.B. ae usw.

Parameter
string$part
bool$reverse
Rückgabe
string

Definiert in Zeile 219 der Datei Ego_Search_Sql.php.

Benutzt $replace_source und $replace_target.

Wird benutzt von search().

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

◆ reset()

reset ( )

Den kompletten Index löschen und neu aufbauen.

Die Indextabelle wird komplett zerstört und neu erstellt.

Erneute Implementation von Ego_Search.

Definiert in Zeile 61 der Datei Ego_Search_Sql.php.

Benutzt Ego_System\getDbDriver().

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

◆ search()

search (   $search,
  $relation,
  $query,
  $use_query_andorscore = false,
  $id_field = 'id',
  $name_field = 'name',
  $count_field = 'count',
  $cond_field = '',
  $more_tables = '',
  $more_where = '',
  $score_select = '',
  $lower = false 
)
   Eine Suche durchführen.

   Möglichkeit 1
   SELECT DISTINCT demo_de.id, demo_de.name

FROM demo_de left join demo_de_fulltext fulltext1 on fulltext1.id=demo_de.id and fulltext1.name LIKE 'beispiel' left join demo_de_fulltext fulltext2 on fulltext2.id=demo_de.id and fulltext2.name LIKE 'buch' left join demo_de_fulltext fulltext3 on fulltext3.id=demo_de.id and fulltext3.name LIKE 'copy' WHERE (fulltext1.id IS NOT NULL OR fulltext2.id IS NOT NULL) AND fulltext3.id IS NULL Zeige Datensätze 0 - 3 (4 insgesamt, die Abfrage dauerte 0.0081 sek.)

   Möglichkeit 2
   SELECT DISTINCT demo_de.id, demo_de.name,

(SELECT SUM(demo_de_fulltext.count) FROM demo_de_fulltext WHERE demo_de_fulltext.id=demo_de.id AND (demo_de_fulltext.name LIKE 'beispiel' OR demo_de_fulltext.name LIKE 'buch') GROUP BY demo_de_fulltext.count) AS score FROM demo_de WHERE (demo_de.id IN (SELECT demo_de_fulltext.id FROM demo_de_fulltext WHERE demo_de_fulltext.name LIKE 'beispiel') OR demo_de.id IN (SELECT demo_de_fulltext.id FROM demo_de_fulltext WHERE demo_de_fulltext.name LIKE 'buch') ) AND demo_de.id NOT IN (SELECT demo_de_fulltext.id FROM demo_de_fulltext WHERE demo_de_fulltext.name LIKE 'copy') Zeige Datensätze 0 - 3 (4 insgesamt, die Abfrage dauerte 0.0095 sek.)

   Beispiel für das Schlagwortregister
   SELECT DISTINCT demo_de.id,demo_de.name,demo_keywords_rel.keyword_id,demo_de_keywords_1.word

FROM demo_de,demo_keywords_rel

LEFT JOIN demo_de_keywords demo_de_keywords_1 ON demo_de_keywords_1.word LIKE 'milch' AND demo_de_keywords_1.id=demo_keywords_rel.keyword_id

WHERE demo_keywords_rel.page_id=demo_de.id AND demo_de_keywords_1.id IS NOT NULL

Parameter
string$searchSuchzeichenkette.
string$relationDer Id zugehöriges Feld in der Origialanfrage (z.B.demo_de.id).
Array$queryAnfragefeld.
bool$use_query_andorscoreWenn auf true gesetzt, dann werden die Abfragen in query['and'], $query['or'] und $query['score'] gespeichert.
string$id_fieldFeldname für die Seitenid in der Volltexttabelle
string$name_fieldFeldname für die Suchworte in der Volltexttabelle
string$count_fieldFeldname für den Zähler in der Volltexttabelle, kann auch leer sein, wenn es keinen Zähler gibt.
string$cond_fieldDas Feld für die Beziehung.
string$more_tablesFür die Schlagwortsuche werden hier weitere Tabellen angegeben. Die Liste muss mit einem Komma beginnen.
string$more_whereFür die Schlagwortsuche werden weitere where Bedingungen übergeben, da dort noch eine Relationentabelle beachtet werden muss.
string$score_selectBei der Schlagwortsuche wird der score anders berechnet, da es dort kein Feld count gibt.

Definiert in Zeile 277 der Datei Ego_Search_Sql.php.

Benutzt Ego_Search\$extraQuery, Ego_Search\checkSearch() und replace().

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

◆ update()

update (   $index,
  $page,
  $count = array(),
  $recursive = true 
)

Einen Eintrag einfügen

Parameter
integer$index
Page$page
array$count
boolean$recursive
Rückgabe
boolean

Definiert in Zeile 99 der Datei Ego_Search_Sql.php.

Benutzt Ego_Search\_getContent().

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

Dokumentation der Felder

◆ $replace_source

$replace_source = array('ä', 'ö', 'ü', 'ß')
static

Definiert in Zeile 16 der Datei Ego_Search_Sql.php.

Wird benutzt von replace().

◆ $replace_target

$replace_target = array('ae', 'oe', 'ue', 'ß')
static

Definiert in Zeile 17 der Datei Ego_Search_Sql.php.

Wird benutzt von replace().


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