Show Menu
THEMEN×

Über das Menü "Filtern"

Verwenden Sie das Menü "Filtern", um Skripten zu verwenden, die den Inhalt eines Webdokuments ändern, bevor es indiziert wird.

Grundlagen zum Filtern von Skripten

Sie können den Inhalt eines Webdokuments ändern, bevor es indiziert Filtering Script wird.
Sie können HTML-Tags einfügen, irrelevante Inhalte entfernen und sogar neue HTML-Metadaten erstellen, die auf der URL, dem MIME-Typ und dem vorhandenen Inhalt eines Dokuments basieren. Das Filterskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der Suche nach regulären Ausdrücken bietet. Sie verwenden das Filterskript mit einem Initialisierungsskript, einem Terminierungsskript, einem URL-Masken-Skript und einer Test-URL.
Das Filterskript wird jedes Mal ausgeführt, wenn ein Dokument von Ihrer Website gelesen wird. Das Skript läuft als Standardfilter, d. h. liest Daten aus STDIN, transformiert diese Daten in irgendeiner Weise und schreibt die Ergebnisse in STDOUT. Sie können das Filterskript verwenden, um Statusmeldungen vom Filterskript zum Indexprotokoll zu drucken. Sie drucken die Nachrichten entweder an STDERR oder über die _search_debug_log() Unterroutine.
Zu den GNU-Diff-Optionen, die Sie im Expert (diff) Modus auf der Seite "Staged Filterung Script"verwenden können, zählen:
GNU-Diff-Option
Beschreibung
-b
Ignoriert Änderungen an der Größe des Leerraums.
-B
Ignoriert Änderungen, die leere Zeilen einfügen oder löschen.
-c
Verwendet das Ausgabeformat "Kontext"und zeigt drei Zeilen Kontext an.
-C-Linien
Verwendet das Ausgabeformat "Kontext", zeigt Zeilen (eine Ganzzahl) mit Kontext an oder drei, wenn keine Zeilen angegeben werden.
-i
Änderungen im Einzelfall ignorieren; die Entsprechung von Groß- und Kleinbuchstaben berücksichtigen.
-f
Stellt eine Ausgabe dar, die ähnlich wie ein ed-Skript aussieht, jedoch Änderungen in der Reihenfolge enthält, in der sie in der Datei angezeigt wird.
-n
Gibt RCS-Dateien aus; like -f , außer dass jeder Befehl die Anzahl der betroffenen Zeilen angibt.
-u
Verwendet das einheitliche Ausgabeformat mit drei Zeilen Kontext.
-U Zeilen
Verwendet das einheitliche Ausgabeformat, zeigt Zeilen (eine Ganzzahl) des Kontexts an oder drei, wenn keine Zeilen angegeben werden.
Sie können lokale Variablen, globale Variablen oder beides in diesen Skripten verwenden. Allen globalen Variablen wird der Namespace "main::" vorangestellt. Wenn das Filterskript gestartet wird, enthält seine Umgebung die folgenden standardmäßigen Datei-Handles:
  • STDIN - nichts (gibt beim Lesen sofort EOF zurück)
  • STDOUT - Ersatz-HTML (wenn Daten in STDOUT gedruckt werden, werden sie anstelle des Originaldokuments verwendet)
  • STDERR - an STDERR gedruckte Daten werden als Fehler im Indexprotokoll gedruckt
Außerdem können Sie mithilfe der _search_debug_log() UnterRoutine benutzerdefinierte Meldungen in das Indexprotokoll schreiben, wie im folgenden Beispiel:
# Log information to the Index Log 
_search_debug_log("Done processing document: " . $main::search_url);

Diese Meldungen werden mit dem Wort DEBUG als Vorwort angezeigt und nicht als Fehler protokolliert.
Im Folgenden finden Sie ein Beispiel für die Filterung. Webseiten- <title> Felder beginnen oft mit dem Firmennamen. Obwohl diese Informationen für die Navigation auf der Site nützlich sind, sind sie bei der Suche nicht relevant. Wenn die Titel aller MegaCorp-Webseiten mit einer gemeinsamen Zeichenfolge beginnen, z. B.:
<title>MegaCorp -- meaningful title 
here</title>

Sie sollten " MegaCorp -- "am Anfang jedes Dokumenttitels entfernen und jedes mit dem Filterskript verarbeitete Dokument zählen. Dazu können Sie das folgende Skript verwenden:
# Make sure this is an HTML document. 
if ($main::ws_content_type =~ /^text\/html/) { 
    # Read the entire document into a local scalar variable. 
    my @docarray = <>; 
    my $doc = join("", @docarray); 
 
    # Remove "MegaCorp -- " from the title. 
    $doc =~ s/(<TITLE>)MegaCorp -- /$1/gis; 
 
    # Print the resulting document. 
    print $doc; 
 
    # Count that we've filtered one more document. 
    $main::doc_count++; 
}

Globale Variablen

Sie können die folgenden Variablen in jedem Filterskript verwenden:
Variable
Beschreibung
$main::search_crawl_type
Der Wert von $main::search_crawl_type gibt den Typ des laufenden Indexvorgangs an. Veraltetes Formular: Zu $main::ws_crawl_type den Indexvorgängen und den zugehörigen Werten gehören:
  • Vollständiger Index: Manuell - manual
  • Vollständiger Index: Geplant - auto
  • Vollständiger Index: Fernsteuerung - CGI
  • Inkrementeller Index: Manuell - manual-incremental
  • Inkrementeller Index: Geplant - auto-incremental
  • Inkrementeller Index: Fernsteuerung - CGI-incremental
  • Skriptindex: Manuell - manual-indexlist.txt
  • Skriptindex: Geplant - auto-indexlist.txt
  • Skriptindex: Fernsteuerung - CGI-indexlist.txt
  • Regenerieren - manual-upgrade
$main::search_clear_cache
Der Wert gibt an, ob die Indexierungsoption "Index-Cache leeren"für den aktuellen Indexvorgang angefordert wurde. Wenn "Index-Cache leeren"angefordert wurde, $main::search_clear_cache lautet der Wert " 1 ". Veraltete Form: $main::ws_clear_cache
$main::search_fields
Der Wert enthält eine tabulatorgetrennte Liste der Metadatenfelder, die im Konto definiert sind. Standardmäßig lautet der Wert: Veraltetes url title desc keys target body alt date charset language Formular: $main::ws_fields
$main::search_collections
Der Wert enthält eine tabulatorgetrennte Liste der Sammlungen, die im Konto definiert sind. Veraltete Form: $main::ws_collections
$main::search_url
Der Wert ist die vollständig qualifizierte URL des Dokuments. Veraltete Form: $main::ws_url
$main::search_content_type
Der Wert ist der Inhaltstyp des Dokuments, der vom http-equiv-Meta-Tag abgerufen wird. Ein typischer Wert ist "text/html". charset=iso-8859-1". Veraltete Form: $main::ws_content_type
$main::search_content_class
Der Wert ist die Inhaltsklasse des Dokuments, die vom Feld "content-type"abgeleitet ist. Veraltete Form: $main::ws_content_class
$main::search_syntax_check
Der Wert spiegelt die Verwendung der Schaltfläche "Syntax überprüfen"wider. Wenn darauf geklickt wird, ist der Wert 1 (1); Andernfalls ist der Wert 0 (null). Veraltete Form: $main::ws_syntax_check
$main::search_last_mod_date
Wenn dieser Wert vom Webserver bereitgestellt wird, enthält er die Epochendarstellung (Sekunden seit dem 1. Januar 1970) des zuletzt geänderten Datums des Dokuments. Sie können diesen Wert mithilfe des Perl localtime()-Bibliotheksaufrufs formatieren.

QuickInfos

  • Allen globalen Variablen wird der Namespace "main::" vorangestellt: $main::doc_count = 0;
  • Alle lokalen Variablen werden mit "my"deklariert: my $i = 0;
  • Unterroutinen werden im Initialisierungsskript definiert. Sie benötigen keinen expliziten Namespace "main::": sub my_sub { ...
    }
  • Testen Sie die Datei, $main::search_content_type bevor Sie Änderungen an einer Datei vornehmen. Beim Testen können Sie unvorsichtige Änderungen an Binärdateien wie SWF- oder PDF-Dateien vermeiden:
    if ($main::search_content_type =~ /^text\/html/) { ...
  • Der $main::search_content_type vollständige Content-Type-Header wird von Ihrem Server bereitgestellt. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von weiteren Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html" enthalten. charset=iso-8859-1".
  • Für jeden Typ von Nicht-HTML-Dokumenten können verschiedene Werte verwendet $main::search_content_type werden. Der Test für jeden Wert in Ihrem Skript wird schwerfällig. Einige Word-Dokumente haben beispielsweise die Inhaltstypwerte "application/msword", "application/vnd.ms-word"oder "application/x-msword". In solchen Fällen $main::search_content_class können die folgenden Werte verwendet werden:
    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen Tests $main::search_content_class auf "word"mit einem der drei möglichen Content-Type-Werte überein.
  • Wenn aus dem Filterskript nichts in STDOUT gedruckt wird, wird das Dokument genau so verwendet, wie es heruntergeladen wurde. Das heißt, wenn Sie nichts in einem Dokument ändern müssen, müssen Sie STDIN für dieses Dokument nicht in STDOUT kopieren.
  • Wenn Sie den gesamten Text aus einem Dokument entfernen möchten, drucken Sie eine gültige STDOUT-Datei. Um beispielsweise den gesamten Text vollständig aus einem HTML-Dokument zu entfernen, führen Sie folgende Schritte aus: print "<html></html>";

Hinzufügen eines Filterskripts

Das Filterskript ist ein Perl-Skript, das für jedes Dokument ausgeführt wird, das von Ihrer Website heruntergeladen wird.
Sie verwenden das Filterskript in Verbindung mit einem Initialisierungsskript, einem Terminierungsskript und einem URL-Masken-Skript.
Stellen Sie sicher, dass Sie Ihren Site-Index neu erstellen, damit die Ergebnisse Ihres Filterskripts für Ihre Kunden sichtbar sind.
So fügen Sie ein Filterskript hinzu
  1. Klicken Sie im Produktmenü auf Settings > Filtering > Filtering Script .
  2. (Optional) Geben Sie auf der Filtering Script Seite im Test URL Feld die URL eines Dokuments auf Ihrer Website ein.
    Klicken Sie auf eine Testoption, um Änderungen am HTML-Rohtext anzuzeigen.
    Option
    Beschreibung
    URL-Feld testen
    Ermöglicht die Eingabe der URL eines Dokuments auf Ihrer Website.
    Test
    Prüft die URL auf die Filterskripte und URL-Masken.
    Das Dokument für die Test-URL wird heruntergeladen und dann als STDIN-Eingabe für das Filterskript verwendet. Anschließend werden die Skripten für Initialisierung, Filterung und Beendigung ausgeführt. Wenn eine STDOUT-Ausgabe aus dem Filterskript vorhanden ist, wird diese Ausgabe in einem neuen Browserfenster angezeigt.
    Nur testen
    Testt nur den Vorgang des Skripts.
    Vorschau
    Hiermit können Sie die Seite anzeigen.
    Vollständige Visualisierung
    Erzeugt eine vollständige Vor- und Nach-Tabellen-Ansicht der Dokumente.
    Kurz visuell
    Zeigt nur die Unterschiede zwischen den Vor- und Nach-Ansichten an.
    Expert (Diff)
    Zeigt die Rohausgabe des GNU diff-Befehls an, der zum Vergleichen der Dateien mithilfe der bereitgestellten Befehlszeilenoptionen verwendet wird.
    Filtern von Skript
    Ermöglicht das Einfügen des Filterskripts in das bereitgestellte Feld.
    Änderungen speichern
    Speichert das Filterskript.
    Syntax prüfen
    Ermöglicht eine schnelle Syntaxprüfung des Skripts durch Ausführen der Initialisierungs-, Filter- und Terminierungsskripte. Das Skript wird nicht aktualisiert und gespeichert.
    Alle Perl-Compilerfehler und -Warnungen sowie alle STDERR-Ausgaben werden gedruckt.
    Bevor die Auswirkungen des Skripts für Kunden sichtbar sind, müssen Sie Ihren Site-Index neu erstellen.
    GNU-Diff-Befehlszeilenoptionen
    Zu den GNU-Diff-Optionen, die Sie im Expert (diff) Modus auf der Seite "Staged Filterung Script"verwenden können, zählen:
    GNU-Diff-Befehlszeilenoption
    Beschreibung
    -b
    Ignoriert Änderungen an der Größe des Leerraums.
    -B
    Ignoriert Änderungen, die leere Zeilen einfügen oder löschen.
    -c
    Verwendet das Ausgabeformat "Kontext"und zeigt drei Zeilen Kontext an.
    -C-Linien
    Verwendet das Ausgabeformat "Kontext", zeigt Zeilen (eine Ganzzahl) mit Kontext an oder drei, wenn keine Zeilen angegeben werden.
    -i
    Änderungen im Einzelfall ignorieren; die Entsprechung von Groß- und Kleinbuchstaben berücksichtigen.
    -f
    Stellt eine Ausgabe dar, die ähnlich wie ein ed-Skript aussieht, jedoch Änderungen in der Reihenfolge enthält, in der sie in der Datei angezeigt wird.
    -n
    Gibt RCS-Dateien aus; like -f , außer dass jeder Befehl die Anzahl der betroffenen Zeilen angibt.
    -u
    Verwendet das einheitliche Ausgabeformat mit drei Zeilen Kontext.
    -U Zeilen
    Verwendet das einheitliche Ausgabeformat, zeigt Zeilen (eine Ganzzahl) des Kontexts an oder drei, wenn keine Zeilen angegeben werden.
  3. Klicken Sie Test auf , um den Test mit den Filterskripten und URL-Masken durchzuführen.
    Durch Klicken auf Test wird das Filterskript nicht aktualisiert und gespeichert.
  4. Fügen Sie im Filtering Script Feld Ihr Skript ein.
  5. (Optional) Klicken Sie Check Syntax auf , um durch Ausführen der Filter-, Initialisierungs- und Terminierungsskripte eine schnelle Syntaxprüfung des Skripts durchzuführen.
    Check Syntax aktualisiert und speichert Ihr Skript nicht.
  6. Klicken Save Changes .
  7. (Optional) Erstellen Sie Ihren Staged Site-Index neu, wenn Sie eine Vorschau der Ergebnisse anzeigen möchten.
  8. (Optional) Führen Sie auf der Filtering Script Seite einen der folgenden Schritte aus:

Info zum Initialisierungsskript

Sie können den Inhalt eines Webdokuments ändern, bevor es indiziert Initialization Script wird.
Sie können HTML-Tags einfügen, irrelevante Inhalte entfernen und sogar neue HTML-Metadaten erstellen, die auf der URL, dem MIME-Typ und dem vorhandenen Inhalt eines Dokuments basieren. Das Initialisierungsskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der Suche nach regulären Ausdrücken bietet. Sie verwenden das Initialisierungsskript mit einem Filterskript, einem Terminierungsskript, einem URL-Masken-Skript und einer Test-URL.
Das Initialisierungsskript wird einmal ausgeführt, bevor die Indexierung beginnt. Verwenden Sie dieses Skript, um alle globalen Variablen und Unterroutinen zu initialisieren, die von Ihrem Filterskript verwendet werden. Sie können das Initialisierungsskript verwenden, um Statusmeldungen vom Filterskript in das Indexprotokoll zu drucken. Sie drucken die Nachrichten entweder an STDERR oder über die _search_debug_log() UnterRoutine.
Zu den GNU-Diff-Optionen, die Sie im Expert (diff) Modus auf der Seite "Staged Initialization Script"verwenden können, zählen:
GNU-Diff-Option
Beschreibung
-b
Ignoriert Änderungen an der Größe des Leerraums.
-B
Ignoriert Änderungen, die leere Zeilen einfügen oder löschen.
-c
Verwendet das Ausgabeformat "Kontext"und zeigt drei Zeilen Kontext an.
-C-Linien
Verwendet das Ausgabeformat "Kontext", zeigt Zeilen (eine Ganzzahl) mit Kontext an oder drei, wenn keine Zeilen angegeben werden.
-i
Änderungen im Einzelfall ignorieren; die Entsprechung von Groß- und Kleinbuchstaben berücksichtigen.
-f
Stellt eine Ausgabe dar, die ähnlich wie ein ed-Skript aussieht, jedoch Änderungen in der Reihenfolge enthält, in der sie in der Datei angezeigt wird.
-n
Gibt RCS-Dateien aus; like -f , außer dass jeder Befehl die Anzahl der betroffenen Zeilen angibt.
-u
Verwendet das einheitliche Ausgabeformat mit drei Zeilen Kontext.
-U Zeilen
Verwendet das einheitliche Ausgabeformat, zeigt Zeilen (eine Ganzzahl) des Kontexts an oder drei, wenn keine Zeilen angegeben werden.
Sie können lokale Variablen, globale Variablen oder beides in diesen Skripten verwenden. Allen globalen Variablen wird der Namespace "main::" vorangestellt. Wenn das Initialisierungsskript gestartet wird, enthält seine Umgebung die folgenden standardmäßigen Datei-Handles:
  • STDIN - nichts (gibt beim Lesen sofort EOF zurück)
  • STDOUT - nichts (wenn Daten auf STDOUT gedruckt werden, werden sie verworfen)
  • STDERR - an STDERR gedruckte Daten werden als Fehler im Indexprotokoll gedruckt
Außerdem können Sie mithilfe der _search_debug_log() UnterRoutine benutzerdefinierte Meldungen in das Indexprotokoll schreiben, wie im folgenden Beispiel:
# Log information to the Index Log 
_search_debug_log("Done processing document: " . $main::search_url);

Diese Meldungen werden mit dem Wort DEBUG als Vorwort angezeigt und nicht als Fehler protokolliert.
Ein Beispiel für ein Initialisierungsskript ist Folgendes:
# My subroutine to do something. 
sub my_sub_for_the_filtering_script { 
    my ($param1, $param2) = @_; 
    ... 
} 
 
# Initialize the document counter. 
$main::doc_count = 0;

QuickInfos

  • Allen globalen Variablen wird der Namespace "main::" vorangestellt: $main::doc_count = 0;
  • Alle lokalen Variablen werden mit "my"deklariert: my $i = 0;
  • Unterroutinen werden im Initialisierungsskript definiert. Sie benötigen keinen expliziten Namespace "main::": sub my_sub { ...
    }
  • Testen Sie die Datei, $main::search_content_type bevor Sie Änderungen an einer Datei vornehmen. Beim Testen können Sie unvorsichtige Änderungen an Binärdateien wie SWF- oder PDF-Dateien vermeiden:
    if ($main::search_content_type =~ /^text\/html/) { ...
  • Der $main::search_content_type vollständige Content-Type-Header wird von Ihrem Server bereitgestellt. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von weiteren Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html" enthalten. charset=iso-8859-1".
  • Für jeden Typ von Nicht-HTML-Dokumenten können verschiedene Werte verwendet $main::search_content_type werden. Der Test für jeden Wert in Ihrem Skript wird schwerfällig. Einige Word-Dokumente haben beispielsweise die Inhaltstypwerte "application/msword", "application/vnd.ms-word"oder "application/x-msword". In solchen Fällen $main::search_content_class können die folgenden Werte verwendet werden:
    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen Tests $main::search_content_class auf "word"mit einem der drei möglichen Content-Type-Werte überein.
  • Wenn aus dem Filterskript nichts in STDOUT gedruckt wird, wird das Dokument genau so verwendet, wie es heruntergeladen wurde. Das heißt, wenn Sie nichts in einem Dokument ändern müssen, müssen Sie STDIN für dieses Dokument nicht in STDOUT kopieren.
  • Wenn Sie den gesamten Text aus einem Dokument entfernen möchten, drucken Sie eine gültige STDOUT-Datei. Um beispielsweise den gesamten Text vollständig aus einem HTML-Dokument zu entfernen, führen Sie folgende Schritte aus: print "<html></html>";

Hinzufügen eines Initialisierungsskripts

Das Initialisierungsskript ist ein Perl-Skript, das einmal ausgeführt wird, bevor Dokumente indiziert werden.
Sie verwenden das Initialisierungsskript in Verbindung mit einem Filterskript, einem Terminierungsskript und einem URL-Masken-Skript.
Stellen Sie sicher, dass Sie Ihren Site-Index neu erstellen, damit die Ergebnisse Ihres Initialisierungsskripts für Ihre Kunden sichtbar sind.
So fügen Sie ein Initialisierungsskript hinzu
  1. Klicken Sie im Produktmenü auf Settings > Filtering > Initialization Script .
  2. (Optional) Geben Sie auf der Initialization Script Seite im Test URL Feld die URL eines Dokuments auf Ihrer Website ein.
    Klicken Sie auf eine Testoption, um Änderungen am HTML-Rohtext anzuzeigen.
    Siehe die Tabelle mit den Filteroptionen unter Hinzufügen eines Filterskripts .
    Klicken Sie Test auf , um den Test mit den Filterskripten und URL-Masken durchzuführen.
    Durch Klicken auf Test wird das Initialisierungsskript nicht aktualisiert und gespeichert.
  3. Fügen Sie im Initialization Script Feld Ihr Skript ein.
  4. (Optional) Klicken Sie Check Syntax auf , um durch Ausführen der Filter-, Initialisierungs- und Terminierungsskripte eine schnelle Syntaxprüfung des Skripts durchzuführen.
    Check Syntax aktualisiert und speichert Ihr Skript nicht.
  5. Klicken Save Changes .
  6. (Optional) Erstellen Sie Ihren Staged Site-Index neu, wenn Sie eine Vorschau der Ergebnisse anzeigen möchten.
  7. (Optional) Führen Sie auf der Initialization Script Seite einen der folgenden Schritte aus:

Informationen zum Kündigungsskript

Sie können den Inhalt eines Webdokuments ändern, bevor es indiziert Termination Script wird.
Sie können HTML-Tags einfügen, irrelevante Inhalte entfernen und sogar neue HTML-Metadaten erstellen, die auf der URL, dem MIME-Typ und dem vorhandenen Inhalt eines Dokuments basieren. Das Initialisierungsskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der Suche nach regulären Ausdrücken bietet. Das Terminierungsskript wird mit einem Initialisierungsskript, einem Filterskript, einem Terminierungsskript, einem URL-Masken-Skript und einer Test-URL verwendet.
Das Terminierungsskript wird einmal ausgeführt, nachdem alle Dokumente indiziert wurden. Sie können das Terminierungsskript verwenden, um Statusmeldungen vom Filterskript in das Indexprotokoll zu drucken. Sie drucken die Nachrichten entweder an STDERR oder über die _search_debug_log() UnterRoutine.
Einige GNU-diff-Befehlszeilenoptionen, die Sie im Expert (diff) Modus auf der Seite "Staged Termination Script"verwenden können, beinhalten Folgendes:
GNU-Diff-Befehlszeilenoption
Beschreibung
-b
Ignoriert Änderungen an der Größe des Leerraums.
-B
Ignoriert Änderungen, die leere Zeilen einfügen oder löschen.
-c
Verwendet das Ausgabeformat "Kontext"und zeigt drei Zeilen Kontext an.
-C-Linien
Verwendet das Ausgabeformat "Kontext", zeigt Zeilen (eine Ganzzahl) mit Kontext an oder drei, wenn keine Zeilen angegeben werden.
-i
Änderungen im Einzelfall ignorieren; die Entsprechung von Groß- und Kleinbuchstaben berücksichtigen.
-f
Stellt eine Ausgabe dar, die ähnlich wie ein ed-Skript aussieht, jedoch Änderungen in der Reihenfolge enthält, in der sie in der Datei angezeigt wird.
-n
Gibt RCS-Dateien aus; like -f , außer dass jeder Befehl die Anzahl der betroffenen Zeilen angibt.
-u
Verwendet das einheitliche Ausgabeformat mit drei Zeilen Kontext.
-U Zeilen
Verwendet das einheitliche Ausgabeformat, zeigt Zeilen (eine Ganzzahl) des Kontexts an oder drei, wenn keine Zeilen angegeben werden.
Sie können lokale Variablen, globale Variablen oder beides in diesen Skripten verwenden. Allen globalen Variablen wird der Namespace "main::" vorangestellt. Beim Starten des Terminierungsskripts enthält die Umgebung die folgenden Standarddateiprozeduren:
  • STDIN - nichts (gibt beim Lesen sofort EOF zurück)
  • STDOUT - nichts (wenn Daten auf STDOUT gedruckt werden, werden sie verworfen)
  • STDERR - an STDERR gedruckte Daten werden als Fehler in das Indexprotokoll gedruckt
Außerdem können Sie mithilfe der _search_debug_log() UnterRoutine benutzerdefinierte Meldungen in das Indexprotokoll schreiben, wie im folgenden Beispiel:
# Log information to the Index Log 
_search_debug_log("Done processing document: " . $main::search_url);

Diese Meldungen werden mit dem Wort DEBUG als Vorwort angezeigt und nicht als Fehler protokolliert.
Um die Anzahl der Dokumente anzuzeigen, die vom Filterskript als Fehlerzeile im Indexprotokoll verarbeitet wurden, können Sie das folgende Terminierungsskript verwenden:
# Print the value of the document counter. 
print STDERR "Total docs: $main::doc_count\n"; 
# Or, using the log subroutine: 
_search_debug_log("Total docs: " . $main::doc_count);

QuickInfos

  • Allen globalen Variablen wird der Namespace "main::" vorangestellt: $main::doc_count = 0;
  • Alle lokalen Variablen werden mit "my"deklariert: my $i = 0;
  • Unterroutinen werden im Initialisierungsskript definiert. Sie benötigen keinen expliziten Namespace "main::": sub my_sub { ...
    }
  • Testen Sie die Datei, $main::search_content_type bevor Sie Änderungen an einer Datei vornehmen. Beim Testen können Sie unvorsichtige Änderungen an Binärdateien wie SWF- oder PDF-Dateien vermeiden:
    if ($main::search_content_type =~ /^text\/html/) { ...
  • Der $main::search_content_type vollständige Content-Type-Header wird von Ihrem Server bereitgestellt. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von weiteren Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html" enthalten. charset=iso-8859-1".
  • Für jeden Typ von Nicht-HTML-Dokumenten können verschiedene Werte verwendet $main::search_content_type werden. Der Test für jeden Wert in Ihrem Skript wird schwerfällig. Einige Word-Dokumente haben beispielsweise die Inhaltstypwerte "application/msword", "application/vnd.ms-word"oder "application/x-msword". In solchen Fällen $main::search_content_class können die folgenden Werte verwendet werden:
    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen Tests $main::search_content_class auf "word"mit einem der drei möglichen Content-Type-Werte überein.
  • Wenn aus dem Filterskript nichts in STDOUT gedruckt wird, wird das Dokument genau so verwendet, wie es heruntergeladen wurde. Das heißt, wenn Sie nichts in einem Dokument ändern müssen, müssen Sie STDIN für dieses Dokument nicht in STDOUT kopieren.
  • Wenn Sie den gesamten Text aus einem Dokument entfernen möchten, drucken Sie eine gültige STDOUT-Datei. Um beispielsweise den gesamten Text vollständig aus einem HTML-Dokument zu entfernen, führen Sie folgende Schritte aus: print "<html></html>";

Hinzufügen eines Kündigungsskripts

Das Terminierungsskript ist ein Perl-Skript, das einmal ausgeführt wird, nachdem alle Dokumente indiziert wurden.
Sie verwenden das Terminierungsskript in Verbindung mit einem Filterskript, einem Terminierungsskript und einem URL-Masken-Skript.
Stellen Sie sicher, dass Sie Ihren Site-Index neu erstellen, damit die Ergebnisse Ihres Initialisierungsskripts für Ihre Kunden sichtbar sind.
So fügen Sie ein Kündigungsskript hinzu
  1. Klicken Sie im Produktmenü auf Settings > Filtering > Termination Script .
  2. (Optional) Geben Sie auf der Termination Script Seite im Test URL Feld die URL eines Dokuments auf Ihrer Website ein.
    Klicken Sie auf eine Testoption, um Änderungen am HTML-Rohtext anzuzeigen.
    Siehe Tabelle der Filteroptionen unter Hinzufügen eines Filterskripts .
    Klicken Sie Test auf , um den Test mit den Filterskripten und URL-Masken durchzuführen.
    Durch Klicken auf Test wird Ihr Terminierungsskript nicht aktualisiert und gespeichert.
  3. Fügen Sie im Termination Script Feld Ihr Skript ein.
  4. (Optional) Klicken Sie Check Syntax auf , um eine schnelle Syntaxprüfung Ihres Skripts durch Ausführen der Initialisierungs-, Filter- und Abschlussskripte durchzuführen.
    Check Syntax aktualisiert und speichert Ihr Skript nicht.
  5. Klicken Save Changes .
  6. (Optional) Erstellen Sie Ihren Staged Site-Index neu, wenn Sie eine Vorschau der Ergebnisse anzeigen möchten.
  7. (Optional) Führen Sie auf der Termination Script Seite einen der folgenden Schritte aus:

Grundlagen zum Skript "URL-Masken"

Mit der Filterung können Sie den Inhalt eines Webdokuments ändern, bevor es indiziert wird. Sie können HTML-Tags einfügen, irrelevante Inhalte entfernen und sogar neue HTML-Metadaten erstellen, die auf der URL, dem MIME-Typ und dem vorhandenen Inhalt eines Dokuments basieren. Das Skript "URL-Masken"ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der Suche nach regulären Ausdrücken bietet.
Um den Inhalt von Dokumenten zu ändern, die nur in einem bestimmten Teil Ihrer Website vorhanden sind, können Sie URL-Masken einschließen, URL-Masken ausschließen oder beides angeben, um die entsprechenden Seiten zu definieren.
Wenn Sie nur die Dokumente unter "https://www.mysite.com/faqs/" ändern möchten, können Sie die folgenden Masken verwenden:
include https://www.mysite.com/faqs/ 
exclude *

Sie können regulären Ausdruck auch in einem URL-Maskenskript verwenden, wie im folgenden Beispiel:
include regexp ^https://www\.mysite\.com.*/faqs/.*$ 
exclude *

Skriptgesteuerte URL-Masken werden in der Reihenfolge berücksichtigt, in der Sie sie in das URL Masks Feld eingegeben haben. Wenn eine Dokument-URL mit einer Maske übereinstimmt, wird dieses Dokument je nach Maskentyp ein- oder ausgeschlossen. Wenn die URL eines Dokuments keiner URL-Maske entspricht, wird das Dokument nur einbezogen, wenn der MIME-Typ "text/html"ist. Alle anderen MIME-Typen sind ausgeschlossen.

Hinzufügen eines URL-Maskenskripts

Geben Sie URL-Adressen wie "Masken einschließen"und "Masken ausschließen"an, um den Inhalt von Dokumenten zu ändern, die nur in einem bestimmten Bereich Ihrer Website vorhanden sind.
Bevor die Auswirkungen der URL-Masken-Einstellungen für Besucher sichtbar sind, erstellen Sie Ihren Site-Index neu.
So fügen Sie ein URL-Maskenskript hinzu
  1. Klicken Sie im Produktmenü auf Settings > Filtering > URL Masks .
  2. (Optional) Geben Sie auf der URL Masks Seite im Test URL Feld eine URL eines Dokuments auf Ihrer Website ein und klicken Sie dann auf , Test um die URL gegen die Filterskripte und -masken zu testen.
    Das Dokument "test URL"wird heruntergeladen, das als STDIN-Eingabe für das Filterskript verwendet wird. Anschließend werden die Filter-, Initialisierungs- und Terminierungsskripte ausgeführt. Wenn eine STDOUT-Ausgabe aus dem Filterskript vorhanden ist, wird die Ausgabe in einem neuen Browserfenster angezeigt.
    Durch Klicken auf Test wird das Skript nicht aktualisiert und gespeichert.
  3. Geben Sie im URL Masks Feld eine URL-Maske pro Zeile ein.
  4. (Optional) Klicken Sie Check Syntax auf , um eine schnelle Syntaxprüfung Ihrer URL-Masken durchzuführen, indem Sie die Filter-, Initialisierungs- und Terminierungsskripte ausführen.
    Check Syntax aktualisiert und speichert Ihr Skript nicht.
  5. Klicken Save Changes .
  6. (Optional) Erstellen Sie Ihren Staged Site-Index neu, wenn Sie eine Vorschau der Ergebnisse anzeigen möchten.
  7. (Optional) Führen Sie auf der URL Masks Seite einen der folgenden Schritte aus:

Inhaltstypen in Filtern

Ermöglicht die Auswahl der Inhaltstypen, die für dieses Konto gefiltert werden sollen.
Der in den ausgewählten Inhaltstypen gefundene Text wird in HTML konvertiert und anschließend mithilfe des Skripts verarbeitet, das im Filterskript angegeben ist.
Zu den Inhaltstypen, aus denen Sie auswählen können, gehören:
  • PDF-Dokumente
  • Textdokumente
  • Adobe Flash-Filme
  • Microsoft Word-Dateien
  • Microsoft Office-Dateien (OpenXML)
  • Microsoft Excel-Dateien
  • Microsoft Powerpoint-Dateien
  • Text in MP3-Musikdateien
Bevor die Auswirkungen der Einstellungen für Inhaltstypen oder Änderungen der Einstellungen für Kunden sichtbar sind, müssen Sie Ihren Site-Index neu erstellen.

Auswählen der gefilterten Inhaltstypen

Wählen Sie die Inhaltstypen aus, die Sie an das Skript übergeben möchten, das im Filterskript angegeben ist.
So wählen Sie die gefilterten Inhaltstypen aus
  1. Klicken Sie im Produktmenü auf Settings > Filtering > Content Types .
  2. Überprüfen Sie auf der Content Types Seite die Inhaltstypen, die an das Filterskript übergeben werden sollen.
  3. Klicken Save Changes .
  4. (Optional) Erstellen Sie Ihren Staged Site-Index neu, wenn Sie eine Vorschau der Ergebnisse anzeigen möchten.
  5. (Optional) Führen Sie auf der Content Types Seite einen der folgenden Schritte aus: