![]() |
EGOCMS
24.0
EGOTEC Content-Managament-System
|
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) | |
Öffentliche Methoden geerbt von Ego_Search | |
| 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) | |
Statische öffentliche Attribute | |
| static | $replace_source = array('ä', 'ö', 'ü', 'ß') |
| static | $replace_target = array('ae', 'oe', 'ue', 'ß') |
Weitere Geerbte Elemente | |
Geschützte Methoden geerbt von Ego_Search | |
| sortPages ($pages, $order='', $sort=array()) | |
| _getContent ($page, $k) | |
| _getExtra ($page, $clean=false) | |
| prepareSearch ($search, $filter='', $original=false, $fuzzy=false) | |
| checkSearch ($search) | |
Geschützte Attribute geerbt von Ego_Search | |
| $config = [] | |
| $extraQuery = '' | |
Verwaltet den Suchindex und führt eine Suche darin durch.
Definiert in Zeile 14 der Datei Ego_Search_Sql.php.
| __construct | ( | $table, | |
$suffix = '_fulltext' |
|||
| ) |
Die Suche initialisieren.
| string | $table | Die Tabelle für den Suchindex setzt sich aus dem Basisnamen |
| string | $suffix | und einem Suffix zusammen. |
Definiert in Zeile 27 der Datei Ego_Search_Sql.php.
| delete | ( | $index | ) |
Einen Eintrag löschen.
| integer | $index | Der Index des Eintrags. |
Erneute Implementation von Ego_Search.
Definiert in Zeile 38 der Datei Ego_Search_Sql.php.
| replace | ( | $part, | |
$reverse = false |
|||
| ) |
Die Zeichenkette mit synonymen Zeichen ersetzen.
Aus a wird z.B. ae usw.
| string | $part | |
| bool | $reverse |
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 | ( | ) |
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, | |
| $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
| string | $search | Suchzeichenkette. |
| string | $relation | Der Id zugehöriges Feld in der Origialanfrage (z.B.demo_de.id). |
| Array | $query | Anfragefeld. |
| bool | $use_query_andorscore | Wenn auf true gesetzt, dann werden die Abfragen in query['and'], $query['or'] und $query['score'] gespeichert. |
| string | $id_field | Feldname für die Seitenid in der Volltexttabelle |
| string | $name_field | Feldname für die Suchworte in der Volltexttabelle |
| string | $count_field | Feldname für den Zähler in der Volltexttabelle, kann auch leer sein, wenn es keinen Zähler gibt. |
| string | $cond_field | Das Feld für die Beziehung. |
| string | $more_tables | Für die Schlagwortsuche werden hier weitere Tabellen angegeben. Die Liste muss mit einem Komma beginnen. |
| string | $more_where | Für die Schlagwortsuche werden weitere where Bedingungen übergeben, da dort noch eine Relationentabelle beachtet werden muss. |
| string | $score_select | Bei 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 | ( | $index, | |
| $page, | |||
$count = array(), |
|||
$recursive = true |
|||
| ) |
Einen Eintrag einfügen
| integer | $index | |
| Page | $page | |
| array | $count | |
| boolean | $recursive |
Definiert in Zeile 99 der Datei Ego_Search_Sql.php.
Benutzt Ego_Search\_getContent().
Hier ist ein Graph, der zeigt, was diese Funktion aufruft:
|
static |
Definiert in Zeile 16 der Datei Ego_Search_Sql.php.
Wird benutzt von replace().
|
static |
Definiert in Zeile 17 der Datei Ego_Search_Sql.php.
Wird benutzt von replace().