![]() |
EGOCMS
24.0
EGOTEC Content-Managament-System
|
Ö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) | |
![]() | |
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 | |
![]() | |
sortPages ($pages, $order='', $sort=array()) | |
_getContent ($page, $k) | |
_getExtra ($page, $clean=false) | |
prepareSearch ($search, $filter='', $original=false, $fuzzy=false) | |
checkSearch ($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().
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().
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().
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().
|
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().