-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #46 from tyrant88/doku
Howto Reindex aktualisiert
- Loading branch information
Showing
3 changed files
with
80 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,71 @@ | ||
# Reindexierung von Datenbank-Feldern | ||
# Automatische Reindexierung | ||
|
||
Da das Addon nicht wissen kann, wann eine Datenbankspalte neu indexiert werden muss, kann keine automatische Indexierung erfolgen. | ||
`Search it` greift auf folgende Extension Points zurück, um Änderungen an den Inhalten von Redaxo-Artikeln zu erfassen: | ||
|
||
Die Klasse search_it bietet allerdings die Methode `indexColumn` an. Über diese Methode können Datenbankspalten neu oder wieder indexiert werden. Müssen die Datenbankspalten nur zu einem bestimmten Datensatz indexiert werden, kann außerdem die ID dieses Datensatzes angegeben werden. Search it wird dann auch nur den betroffenen Datensatz reindexieren. | ||
* `ART_DELETED` | ||
* `ART_META_UPDATED` | ||
* `ART_ADDED` | ||
* `ART_STATUS` | ||
* `ART_UPDATED` | ||
* `CAT_DELETED` | ||
* `CAT_STATUS` | ||
* `CAT_ADDED` | ||
* `CAT_UPDATED` | ||
* `MEDIA_ADDED` | ||
* `MEDIA_UPDATED` | ||
* `SLICE_UPDATED` | ||
* `SLICE_DELETED` | ||
* `SLICE_ADDED` | ||
* `SLICE_SHOW` | ||
|
||
## Beispiel | ||
## Reindexierung von Artikeln via Cronjob | ||
|
||
Ein Addon arbeitet mit einer eigenen Datenbank-Tabelle `table`. Search it soll Inhalte dieses Addons auch automatisch reindexieren. Da das Addon selbst weiß, wann die Beispieldatenbank-Feld `field` reindexiert werden soll, kann die Methode `indexColumn` von diesem Addon aufgerufen werden: | ||
Falls notwendig, kann eine Reindexierung von Artikeln auch über einen Cronjob angesteuert werden: | ||
|
||
``` | ||
<?php | ||
# Dieses Beispiel ist noch nicht funktionstüchtig. | ||
#foreach($search_it->includeColumns() as $table => $columnArray){ | ||
# foreach($columnArray as $column) { | ||
# $search_it->indexColumn($table, $column); | ||
# } | ||
#} | ||
?> | ||
``` | ||
|
||
## Reindexierung von Datenbank-Feldern | ||
|
||
Die Klasse `search_it` bietet allerdings die Methode `indexColumn` an. Über diese Methode können Datenbankspalten neu oder wieder indexiert werden. Müssen die Datenbankspalten nur zu einem bestimmten Datensatz indexiert werden, kann außerdem die ID dieses Datensatzes angegeben werden. Search it wird dann auch nur den betroffenen Datensatz reindexieren. | ||
|
||
### Allgemein | ||
|
||
Falls notwendig, kann eine Reindexierung von Datenbank-Tabellen auch über einen Cronjob angesteuert werden: | ||
|
||
``` | ||
<?php | ||
# Dieses Beispiel ist noch nicht funktionstüchtig. | ||
# | ||
#$art_sql = rex_sql::factory(); | ||
#$art_sql->setTable($search_it->tablePrefix.'article'); | ||
#if($art_sql->select('id,clang_id')){ | ||
# foreach($art_sql->getArray() as $art){ | ||
# $search_it->indexArticle($art['id'], $art['clang_id']); | ||
# } | ||
#} | ||
?> | ||
``` | ||
|
||
### Für Addons | ||
|
||
Ein Addon arbeitet mit einer eigenen Datenbank-Tabelle, hier: `table`. Search it soll Inhalte dieses Addons auch automatisch reindexieren. Da das Addon selbst weiß, wann die Beispieldatenbank-Feld `field` reindexiert werden soll, kann die Methode `indexColumn` von diesem Addon aufgerufen werden: | ||
|
||
``` | ||
$search_it = new search_it; | ||
$search_it->indexColumn('table', 'field', 'id'[, $datensatz_id]); | ||
$search_it->indexColumn('table', 'field'[, 'id'[, $datensatz_id]]); | ||
``` | ||
|
||
Die Methode `indexColumn` benötigt also 4 Parameter: | ||
Die Methode `indexColumn` benötigt daher folgende Parameter: | ||
* Die Namen der Datenbanktabelle (hier: `table`) und | ||
* das Datenbank-Feld (hier: `field`), | ||
* der Primärschlüssel (hier: `id`) und | ||
* optional die ID des Datensatzes, der reindexiert wird. | ||
* optional der Primärschlüssel (Standard: `id`) und | ||
* optional die ID des Datensatzes, der reindexiert wird (Standard: alle). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters