Informationen zum Filtermenü

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

Informationen zum Filtern von Skript

Sie können Filtering Script verwenden, um den Inhalt eines Web-Dokuments zu ä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 bestehenden Inhalten eines Dokuments basieren. Das Filterskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der regelmäßigen Ausdruck-Übereinstimmung 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 UnterRoutine _search_debug_log().

Einige GNU-Diff-Optionen, die Sie im Expert (diff)-Modus auf der Seite "Staged Filtering Script"verwenden können, beinhalten Folgendes:

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; wie -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 Namensraum "main::"vorangestellt. Wenn das Filterskript gestartet wird, enthält seine Umgebung die folgenden Standarddateihandler:

  • STDIN - nichts (gibt beim Lesen sofort EOF zurück)
  • STDOUT - Ersatz-HTML (wenn Daten in STDOUT gedruckt werden, wird sie anstelle des ursprünglichen Dokuments verwendet)
  • STDERR - an STDERR gedruckte Daten werden als Fehler im Indexprotokoll gedruckt

Zusätzlich können Sie mit der UnterRoutine _search_debug_log() 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-Felder <title> beginnen oft mit dem Namen der Firma. 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 wie der folgenden Beginn enthalten:

<title>MegaCorp -- meaningful title 
here</title>

Sie sollten " MegaCorp --"am Anfang jedes Dokument-Titels 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: $main::ws_crawl_type Die Indexvorgänge und die zugehörigen Werte umfassen Folgendes:
  • Vollständiger Index: Manuell - manual
  • Vollständiger Index: Geplant - auto
  • Vollständiger Index: Remote Control - CGI
  • Inkrementeller Index: Manuell - manual-incremental
  • Inkrementeller Index: Geplant - auto-incremental
  • Inkrementeller Index: Remote Control - CGI-incremental
  • Skriptindex: Manuell - manual-indexlist.txt
  • Skriptindex: Geplant - auto-indexlist.txt
  • Skriptindex: Remote Control - 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, lautet der Wert von $main::search_clear_cache "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: url title desc keys target body alt date charset language Veraltetes Formular: $main::ws_fields
$main::search_collections Der Wert enthält eine tabulatorgetrennte Liste der im Konto definierten Sammlungen. 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, wie sie aus dem 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 vom Webserver bereitgestellt wird, enthält dieser Wert die Epochendarstellung (Sekunden seit dem 1. Januar 1970) des letzten Änderungsdatums des Dokuments. Sie können diesen Wert mithilfe des Perl localtime()-Bibliotheksaufrufs formatieren.

QuickInfos

  • Allen globalen Variablen wird der Namensraum "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 "main:"-Namensraum: sub my_sub { ...

    }

  • Testen Sie das $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/) { ...

  • $main::search_content_type ist der vollständige Content-Type-Header, der von Ihrem Server bereitgestellt wird. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von anderen Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html"enthalten. charset=iso-8859-1".

  • Für jeden Typ von Nicht-HTML-Dokument können $main::search_content_type verschiedene Werte annehmen. 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 kann $main::search_content_class die folgenden Werte annehmen:

    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen die Tests von $main::search_content_class für "word"mit allen drei möglichen Werten des Inhaltstyps überein.

  • Wenn aus dem Filterskript nichts an 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, dann 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 von Ihrer Website heruntergeladene Dokument ausgeführt 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.

Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

So fügen Sie ein Filterskript hinzu

  1. Klicken Sie im Produktmenü auf Settings > Filtering > Filtering Script.

  2. (Optional) Geben Sie auf der Seite Filtering Script im Feld Test URL die URL eines Dokuments auf Ihrer Website ein.

    Klicken Sie auf eine Testoption, um Änderungen am HTML-Rohtext anzuzeigen.

    Option

    Beschreibung

    URL-Feld testen

    Hier können Sie die URL eines Dokuments auf Ihrer Website eingeben.

    Test

    Prüft die URL auf die Filterskripte und URL-Masken.

    Das Test-URL-Dokument 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

    Ermöglicht die Ansicht der Seite.

    Vollständige Visualisierung

    Erstellt eine vollständige Ansicht der Dokumente vor und nach der Tabelle.

    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

    Einige GNU-Diff-Optionen, die Sie im Expert (diff)-Modus auf der Seite "Staged Filtering 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; wie -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 auf Test, um die Filterskripte und URL-Masken zu testen.

    Durch Klicken auf Test wird Ihr Filterskript nicht aktualisiert und gespeichert.

  4. Fügen Sie im Feld Filtering Script Ihr Skript ein.

  5. (Optional) Klicken Sie auf Check Syntax, um eine schnelle Syntaxprüfung Ihres Skripts durchzuführen, indem Sie die Filter-, Initialisierungs- und Terminierungsskripte ausführen.

    Check Syntax aktualisiert und speichert Ihr Skript nicht.

  6. Klicken Save Changes.

  7. (Optional) Erstellen Sie Ihren Stage-Site-Index neu, wenn Sie die Vorschauen durchführen möchten.

    Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

  8. (Optional) Führen Sie auf der Seite Filtering Script einen der folgenden Schritte aus:

Info zu Initialisierungsskript

Sie können Initialization Script verwenden, um den Inhalt eines Web-Dokuments zu ä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 bestehenden Inhalten eines Dokuments basieren. Das Initialisierungsskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der regelmäßigen Ausdruck-Übereinstimmung 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.

Einige GNU-Diff-Optionen, die Sie im Expert (diff)-Modus auf der Seite "Staged Initialization Script"verwenden können, beinhalten Folgendes:

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; wie -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 Namensraum "main::"vorangestellt. Wenn das Initialisierungsskript gestartet wird, enthält seine Umgebung die folgenden Standarddateihandler:

  • 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

Zusätzlich können Sie mit der UnterRoutine _search_debug_log() 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;

Siehe Globale Variablen

QuickInfos

  • Allen globalen Variablen wird der Namensraum "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 "main:"-Namensraum: sub my_sub { ...

    }

  • Testen Sie das $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/) { ...

  • $main::search_content_type ist der vollständige Content-Type-Header, der von Ihrem Server bereitgestellt wird. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von anderen Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html"enthalten. charset=iso-8859-1".

  • Für jeden Typ von Nicht-HTML-Dokument können $main::search_content_type verschiedene Werte annehmen. 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 kann $main::search_content_class die folgenden Werte annehmen:

    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen die Tests von $main::search_content_class für "word"mit allen drei möglichen Werten des Inhaltstyps überein.

  • Wenn aus dem Filterskript nichts an 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, dann 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.

Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

So fügen Sie ein Initialisierungsskript hinzu

  1. Klicken Sie im Produktmenü auf Settings > Filtering > Initialization Script.

  2. (Optional) Geben Sie auf der Seite Initialization Script im Feld Test URL 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 auf Test, um die Filterskripte und URL-Masken zu testen.

    Durch Klicken auf Test wird Ihr Initialisierungsskript nicht aktualisiert und gespeichert.

  3. Fügen Sie im Feld Initialization Script Ihr Skript ein.

  4. (Optional) Klicken Sie auf Check Syntax, um eine schnelle Syntaxprüfung Ihres Skripts 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 Stage-Site-Index neu, wenn Sie die Vorschauen durchführen möchten.

    Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

  7. (Optional) Führen Sie auf der Seite Initialization Script einen der folgenden Schritte aus:

Informationen zum Terminierungsskript

Sie können Termination Script verwenden, um den Inhalt eines Web-Dokuments zu ä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 bestehenden Inhalten eines Dokuments basieren. Das Initialisierungsskript ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der regelmäßigen Ausdruck-Übereinstimmung 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; wie -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 Namensraum "main::"vorangestellt. Beim Starten des Terminierungsskripts enthält die Umgebung die folgenden Standarddateihandler:

  • 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

Zusätzlich können Sie mit der UnterRoutine _search_debug_log() 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);

Siehe Globale Variablen

QuickInfos

  • Allen globalen Variablen wird der Namensraum "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 "main:"-Namensraum: sub my_sub { ...

    }

  • Testen Sie das $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/) { ...

  • $main::search_content_type ist der vollständige Content-Type-Header, der von Ihrem Server bereitgestellt wird. Es kann manchmal einen einfachen MIME-Typ enthalten, z. B. "text/html". Sie kann auch einen MIME-Typ gefolgt von anderen Informationen wie der Zeichensatzkodierung des Dokuments wie "text/html"enthalten. charset=iso-8859-1".

  • Für jeden Typ von Nicht-HTML-Dokument können $main::search_content_type verschiedene Werte annehmen. 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 kann $main::search_content_class die folgenden Werte annehmen:

    • html
    • pdf
    • word
    • excel
    • powerpoint
    • mp3
    • text
  • In diesem Beispiel stimmen die Tests von $main::search_content_class für "word"mit allen drei möglichen Werten des Inhaltstyps überein.

  • Wenn aus dem Filterskript nichts an 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, dann 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.

Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

So fügen Sie ein Kündigungsskript hinzu

  1. Klicken Sie im Produktmenü auf Settings > Filtering > Termination Script.

  2. (Optional) Geben Sie auf der Seite Termination Script im Feld Test URL die URL eines Dokuments auf Ihrer Website ein.

    Klicken Sie auf eine Testoption, um Änderungen am HTML-Rohtext anzuzeigen.

    Siehe die Tabelle der Filteroptionen unter Hinzufügen eines Filterskripts.

    Klicken Sie auf Test, um die Filterskripte und URL-Masken zu testen.

    Durch Klicken auf Test wird Ihr Terminierungsskript nicht aktualisiert und gespeichert.

  3. Fügen Sie im Feld Termination Script Ihr Skript ein.

  4. (Optional) Klicken Sie auf Check Syntax, um eine schnelle Syntaxprüfung Ihres Skripts durchzuführen, indem Sie die Initialisierungs-, Filter- und Kündigungsskripte ausführen.

    Check Syntax aktualisiert und speichert Ihr Skript nicht.

  5. Klicken Save Changes.

  6. (Optional) Erstellen Sie Ihren Stage-Site-Index neu, wenn Sie die Vorschauen durchführen möchten.

    Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

  7. (Optional) Führen Sie auf der Seite Termination Script einen der folgenden Schritte aus:

Informationen zu URL-Masken, Skript

Mit der Filterung können Sie den Inhalt eines Web-Dokuments ä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 bestehenden Inhalten eines Dokuments basieren. Das Skript "URL-Masken"ist ein Perl-Skript, das eine leistungsstarke Zeichenfolgenbearbeitung und die Flexibilität bei der regelmäßigen Ausdruck-Übereinstimmung bietet.

Um den Inhalt von Dokumenten zu ändern, die nur in einem bestimmten Bereich 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 auch regulären Ausdruck in einem URL-Maskenskript verwenden, wie im folgenden Beispiel:

include regexp ^https://www\.mysite\.com.*/faqs/.*$ 
exclude *

Siehe Reguläre Ausdruck.

Skriptgesteuerte URL-Masken werden in der Reihenfolge berücksichtigt, in der Sie sie im Feld URL Masks 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 die URL an, um Masken einzuschließen und Masken auszuschließen, 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 den 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 Seite URL Masks im Feld Test URL 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 Test-URL-Dokument 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 Feld URL Masks eine URL-Maske pro Zeile ein.

  4. (Optional) Klicken Sie auf Check Syntax, 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 Stage-Site-Index neu, wenn Sie die Vorschauen durchführen möchten.

    Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

  7. (Optional) Führen Sie auf der Seite URL Masks 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.

Siehe Informationen zum Filtern von Skript.

Zu den Inhaltstypen, aus denen Sie auswählen können, gehören:

  • PDF-Dokumente
  • Text-Dokumente
  • 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 Inhaltstypen, die gefiltert werden

Wählen Sie die Inhaltstypen aus, die Sie an das Skript übergeben möchten, das im Filterskript angegeben ist.

Siehe Informationen zum Filtern von Skript.

So wählen Sie die gefilterten Inhaltstypen aus

  1. Klicken Sie im Produktmenü auf Settings > Filtering > Content Types.

  2. Überprüfen Sie auf der Seite Content Types die Inhaltstypen, die an das Filterskript übergeben werden sollen.

  3. Klicken Save Changes.

  4. (Optional) Erstellen Sie Ihren Stage-Site-Index neu, wenn Sie die Vorschauen durchführen möchten.

    Siehe Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

  5. (Optional) Führen Sie auf der Seite Content Types einen der folgenden Schritte aus:

Auf dieser Seite