Insuma GmbH - Intelligente Suchmaschinen
Insuma Logo
Englische Version

Ihr Projektangebot:

Ihre Suchmaschine:


Insuma Tech FAQ

Diese FAQ-Liste ist geschrieben für die Experten in den IT-Abteilungen der Insuma-Kunden sowie für die Integratoren der Insuma-Software.


Wie heißt der Insuma User-Agent?

Der Crawler der Insuma-Suchmaschine stellt sich selbst vor als:
    InsumaScout/1.15
wobei 1.15 die aktuelle Versionsnummer angibt. Sie können dem Insuma-Crawler mit Hilfe der robots.txt-Datei verbieten, gewisse Verzeichnisse zu indizieren. Dies können Sie auch in Ihrem Web-Autorensystem erledigen. Der Webserver setzt eine Umgebungsvariable HTTP_USER_AGENT auf den Crawler-Namen.


Wie kann ich das Ranking beeinflussen (Scores)?

Der Ranking-Wert hat einen Fließkommawert zwischen 0 und 1. Die Werte sind nur schlecht vorherzusagen, da die Werte sich je nach Installation, Wortkorpus des Indexes, Anzahl der indizierten Dokumente, usw. unterscheiden. Sie können die Ranking-Werte (auch "Scores" genannt) durch die Paramter score_beta and score_theta der Konfigurationsdatei manipulieren. Ein Wert score_theta von -5 ist wahrscheinlich die beste Einstellung für alle Installationen. Regulieren sie score_beta um einen Faktor 10 und beobachten Sie das abweichende Ranking-Verhalten. Dieser Vorgang muss wiedrholt werden, bis sich ein zufreiden stellendes Verhalten eingestellt hat.


Ich habe Parameter in der Konfigurationsdatei geändert, aber man sieht keine Veränderungen?

Wenn Sie eine Installation haben, die auf mod_python aufsetzt, sollten Sie den HTTP-Daemon Prozess erneut starten, so dass die Konfiguration erneut eingelesen werden kann.


Meine Website benutzt Java zur Navigation. Dabei werden nicht alle Seiten korrekt indiziert. Was muss ich tun?

Eine Java-Navigation kann dem Crawler Schwierigkeiten bereiten. Schalten Sie dazu Java in Ihrem Browser aus, um zu sehen, wie der Crawler Ihre Webseiten sieht. Wenn einige Ihrer webseiten oder ganze Bereiche unerreichbar sind, so kann eines der folgenden Strategien helfen:
  • Tragen Sie die unerreichbaren Webseiten in den Abschnitt StartURLs Ihres Control-Centers ein,
  • Verlinken Sie die unerreichbaren Webseiten in gwöhnlicher HTML-Manier, so dass diese von Ihrer Start-Seite ohne Java erreicht werden,
  • Erzeugen Sie eine Schatten-Seite auf Ihrer Website, die alle unerreichbaren Webseiten auflistet und tragen diese Schatten-Seite als StartURL in das Control-Center ein.


Warum wird ein Dokument auf meiner Website nicht gefunden?

Der Crawler startet von der Start URL aus, die Sie in das Control-Center eingetragen haben. Dies ist sehr häufig die Hauptseite Ihrer Website, z.B. http://www.meineseite.de/. Stellen Sie bitte sicher, dass das fehlende Dokument von dort erreichbar ist, d.h. Sie können Links von dort verfolgen, bis Sie die Seite gefunden haben. Wenn dies nicht der Fall ist, so haben Sie eine sogenannte Crawler-Tasche ("crawler pocket") auf Ihrer Website.

Eine Crawler-Tasche ist eine Webseite oder eine Gruppe von Webseiten, die nicht über HTTP 1.0 Links erreichbar sind. Dies ist der Fall, wenn die Seiten nur von einem Pulldown-Auswahlmenü, einer Datenbank-Suche oder einem Java-Applet aus erreichbar sind.

Fügen Sie bitte eine repräsentative URL aus dieser Crawler-Tasche in das Control-Center unter Start URLs hinzu, so dass der Crawler die Möglichkeit erhält, diese Seiten zu indizieren. Wenn die Dokumente untereinander nicht verlinkt sind, müssen Sie alle fehlenden URLs der Liste einzeln eintragen.


Einige Seiten tauchen mehrmals in den Suchergbnislisten auf. Was muss ich tun?

Seiten können mehrfach in der Ergbnisliste auftauchen, wenn Sie mit verschiedenen CGI-Paramtern erreicht werden können, z.B.:
http://www.mysite.co.uk/mypage.asp?counter=234
http://www.mysite.co.uk/mypage.asp?counter=235
...
Jede unterschiedliche URL (inklusive aller CGI-Paramter) wird durch den Crawler als seperate Seite angesehen. Zur selben Seite mit unterschiedlichen CGI-Paramtern zurück zu gelangen, führt zu sogenannten Crawler-Schleifen ("crawler loop"), die unendlich sein kann (bis die Quota überschritten ist). Eine der folgenden Aktionen schützen davor:
  • Fügen Sie die variablen Paramter in den Abschnitt "Modify URL" in das Control-Center ein. Indem Sie den Parameter löschen, erzwingen Sie, dass die URLs als identisch angesehen werden. Sie werden nicht öfter als einmal besucht.
  • Verbieten Sie diesen Bereich Ihrer Website durch einen Eintrag im Abschnitt "Disallow URLs" des Control-Centers.
  • Wenn Ihre Website ein Framework (Content Management System, CMS) benutzt, um Seiten anzuzeigen, dann kann es sinnvoll sein, eine angepasste Schnittstelle für den Crawler zu entwickeln. Kontaktieren Sie bitte hierzu den Hersteller Ihres Frameworks.
Wenn Sie das Modul "Deduplizierung" bestellt haben, so können Sie es in der Konfigurationsdatei crawler.conf aktivieren:
deduplicate_size =      0.03
deduplicate_diff =      0.02
Der Deduplizierungs-Algorithmus wird die Unterschiede zwischen einzelnen Seiten überprüfen, und wird nachfolgende Seiten verwerfen, wenn sie den selben oder ähnlichen Inhalte wie vorhergehende Seiten haben. Das obige Beispiel stellt eine typische Konfiguration dar. Zunächst werden über die Dokumentengröße (deduplicate_size) geeignete Kandidaten ausgewählt. Der nächste Schritt - die eigentliche Überprüfung der inhaltlichen Unterschiede - wird durch den Paramter deduplicate_diff reguliert.

Setzen Sie beide Paramter auf 0, um nur wirklich identische Dokumente auszuschließen. Setzen Sie beide Paramter auf -1, um die Deduplizierung abzuschalten.

Der Crawler muss erneut gestartet werden, damit sich die Veränderungen auswirken können.


Die Reindizierung ist nicht inkrementell, sondern reindiziert immer wieder von Neuem. Wie kann ich dies abstellen?

Wenn Sie ein CGI-Skript benutzen, um die Inhalte anzuzeigen, dann stellen Sie bitte sicher, dass Ihr Skript die "Last-Modified:"-Information des HTTP-Headers zur Verfügung stellt. Sie können dies überprüfen, indem Sie mit Hilfe Ihres Browsers die Seiteninformation (page information) eines Ihrer Webseite betrachten (über das Browser-Menü). Das Datum kann von den Datei-Attributen herrühren, von denen die Inhalte stammen, oder aber vom "Last modification"-Datum der Datenbank, von wo die Inhalte stammen. Wenn keine "Last-Modified:"-Information vorhanden ist, werdem immer wieder alle Seiten vollständig neu gecrawlt.


Ein Dokument oder Seite erscheint in der Suchergebnisliste, obwohl es nicht mehr existiert. Wie kann ich dies korrigieren?

Sie müssen bis zum nächsten planmäßigen Re-Indizieren warten. Überprüfen Sie die Einstellungen dazu in Ihrem Control-Center. Wenn die Dokumente auch nach erneuter Re-Indizierung bestehen bleiben, so können Sie folgendes tun:
  • Sie können Dokumente vom Index entfernen, indem Sie der Indexing-Schnittstelle folgende XML zukommen lassen:
    <collection>
    <document url="http://www.mysite.co.uk/old.html" status="deleted"> 
    <document url="http://www.mysite.co.uk/old2.html" status="deleted"> 
    ...
    <collection> 
    
    Sehen Sie auch in Ihrem XML-Handbuch und der Spezifikation für weitere Details nach.


Wozu dienen die Gewichte im Control Center?

Die Gewichte beeinflussen die Reihenfolge (das "Ranking") der Dokumente in der Suchergebnisliste. Sie können die gelieferte Einstellung in der Eegel unangetastet lassen.

Wenn Sie z.B. Ergebnisse, welche im Original-Dokument gefunden wurden, in der Ergbnisliste höher platzieren möchten als solche, die mit Hilfe der Morphologie gefunden wurden, so können Sie die Gewichte wie folgt einstellen:

body: 100
body_morpho: 10
Oder Sie möchten Treffer im Titel (<title>) vor Treffern in der Body-Umgebung (<body>) sehen, so geben Sie folgendes ein:
title: 300
body: 100
Die Werte sind dabei als relativ zu allen anderen zu betrachten. Absolute Zahlengrößen haben daher keine Bedeutung.

Normalerweise brauchen Sie keine Ganzzahl- oder String-Attribute zuregulieren, wenn ein gewisser Wert für alle Ergebnisse gefordert ird, z.B. vip=1. Erst wenn eine Suchanfrage verschiedene Bedingungen (conditions) miteinander verknüpft, von der einige den Wert erfordern, andere nicht, ist die Gewichtung der Attribute sinnvoll. Setze Sie den das Gewicht des Attributes vip 10-fach höher als für das Attribut <body> um Ergbnisse höher zu platzieren, welche dem VIP-Wert entsprechen. Gewichtsänderungen zeigen sofortige Wirkung. Sie können unterschiedliche Einstellungen in einem zweiten Fenster austesten.


Warum kann ich keine Wörter finden, die kürzer als 4 Buchstaben sind?

Standardmäßig werde nur Terme, die länger als 3 Buchstaben sind, indiziert. Dies ist eine Standard-Einstellung für die Suche in einer großen Textmenge mit generischem Lexikon. Wenn ihr Lexikon kürzere Terme enthält, die gefunden werden sollen, so fügen Sie folgende Zeilen in Ihre MySQL-Konfigurationsdatei (normalerweise my.cnf) hinzu:
# set the minimum word length for fulltext indexing
ft_min_word_len = 1
Die Änderungen wirken sich erst nach einer erneuten Re-Indizierung und Neustart des MySQL-Daemons aus.
/etc/init.d/mysql restart


Wie kann ich die Profisuche installieren, um Terme auszuschließen, etc?

Die XML-Syntax erlaubt jede erdenkliche erweiterte Boolsche Anfrage. Bitte schlagen Sie im Integrations-Tutorial sowie dem XML-Handbuch für weitere Details und zugehörige formale DTDs nach. Unten zeigen wir Ihnen ein kurzes Beispiel:

Negationen sollten immer in Verbindung mit dem Prädikat bmatch benutzt werden:


    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE result SYSTEM "insuma_search_result.dtd">
    <query max_results="10" start_from="1" show_attrs="title description">
        <and>
            <condition predicate='match' attr='body' value='John Lennon'/>
    <condition predicate='bmatch' attr='body' value='John -Lennon'/>
        </and>
    </query>

Es ist wichtig, weiterhin das Prädikat match für das korrekte Ranking zu benutzen, da bmatch lediglich binär sortiert (1 - Suchwort vorhanden, 0 - nicht vorhanden).

Das Prädikat like wird gebraucht, um Wörter an Hand von Teilwörtern zu finden. %uff% findet buffer, stuff, fluffy, %uff findet stuff.


Wie gehe ich vor, um "exakte Phrasen" in der Ergebnisliste höher zu platzieren?

Wenn Sie den Namen "Günter Netzer" eingeben, möchten Sie diese sogenannte "Phrase" (auch "Substring" genannt) an erster Stelle sehen, vor Dokumenten über "Günter" oder "Netzer". Füge Sie hierzu eine bmatch-Bedingung in Ihre XML-Anfrage hinzu, die Sie mittels OR mit dem Rest verknüpfen. Mit bmatch können Sie nach Phrasen suchen, welche durch Anführungszeichen gekennzeichnet werden. Unten geben wir Ihnen die XML-Anfrage zu obigem Beispiel. Die XML-Anfrage findet nur Dokumente mit exakter Phrase.


    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE result SYSTEM "insuma_search_result.dtd">
    <query max_results="10" start_from="1" show_attrs="title description">
        <and>
            <condition predicate='match' attr='body' value='Günter Netzer'/>
            <condition predicate='bmatch' attr='body' value='"Günter Netzer"'/>
        </and>
    </query>

Wenn beide Wörter irgendwo im Dokument vorhanden sein sollen, so benutzen Sie bitte wiederum bmatch:


    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE result SYSTEM "insuma_search_result.dtd">
    <query max_results="10" start_from="1" show_attrs="title description">
        <and>
            <condition predicate='match' attr='body' value='Günter Netzer'/>
            <condition predicate='bmatch' attr='body' value='+Günter
    +Netzer'/>
        </and>
    </query>


Wie initialisiere ich die Suche innerhalb von Kategorien?

In Ihrer Suchform möchten Sie die Suche über gewisse Bereiche Ihrer Website zur Verfügung stellen. Dies können die Bereiche "Aktuelle Nachrichten - News", "Archiv", ein Mitgliederbereich sein, etc. Dies können Sie durch das Index-Attribut category erreichen.

Wenn Sie Anfrage an die XML-Schnittstelle stellen, so können Sie die Suche auf gewisse Bereiche Ihrer Website, d.h. Kategorien bzw. Gewisse Werte des Attributs category beschränken. Ihre Suchform mag dazu Auswahlmenüs oder Checkboxen zur Verfügung stellen. Das Standard-Kategorisierungs-Modul erlaubt es, Kategorien auf 2 Arten zu definieren:

  • Kategorien, die von URL-Masken abgeleitet werden. Dazu wird im Control-Center ein URL matching substring eingegeben:
    /path/category1/ My_category_1 
    http://www.mysite.com/path/category2/ Tourism 
    

    In diesem Fall wird der Crawler dem Attribut category des Dokuments http://www.mysite.com/path/category2/museums.html den Wert Tourism zuweisen, welches in der späteren Suchanfrage weiter verwendet werden kann.

  • Kategorien werden über Meta-Tags gesetzt. Dazu wird im Control-Center folgendes eingegeben:
    <META NAME=MODE CONTENT="category1"> My_category_name_1 
    <META NAME=MODE CONTENT="category2">   (Default category name: category2) 
    
    Verschiedene Werte für das Attribut category sind erlaubt. Die Inhalte müssen nach jeder Änderung re-indiziert werden, damit die Änderungen wirksam werden.


Respektiert der Insuma-Crawler robots Meta-Tags?

Ja, die formale Syntax lautet:

CONTENT="ALL | NONE | NOINDEX | INDEX| NOFOLLOW | FOLLOW" default = empty = "ALL"
"NONE" = "NOINDEX, NOFOLLOW"

Das CONTENT-Feld ist eine durch Komma getrennte Liste:
  • INDEX: Suchmaschinen-Crawler sollen diese Seite mit indizieren.
  • FOLLOW: Crawler sollen Links von dieser zu weiteren Seiten verfolgen dürfen.
  • NOINDEX: Links dürfen verfolgt, die Seite wird jedoch nicht indiziert.
  • NOFOLLOW: Die Seite darf indiziert werden, jedoch dürfen keine Links verfolgt werden.
  • NONE: Der Crawler ignoriert die Seite.

Beispiele:

<META NAME="ROBOTS" CONTENT="ALL"> 

<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">

<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">

<META NAME="ROBOTS" CONTENT="NONE">


Was sind die Hardware-Anforderungen an die Insuma Suchsoftware?

Die Mimimal-Konfiguration ist:
  • 1 GHz CPU Intel Celeron oder Athlon
  • 40 GB Festplatte
  • 1 GB Hauptspeicher
Sie mögen eine bessere Konfiguration in Betracht ziehen, um die Suche sowie den Indizierungs-Prozess zu beschleunigen:
  • Mehr Hauptspeicher wird die Suche beschleunigen.
  • Ein Hardware-RAID wird die Suche beschleunigen.
  • Eine leistungsfähigere CPU (oder zweite CPU) wird den Indizier- und Cluster-Prozess beschleunigen.
  • Fügen Sie weiter SCSI-Festplatten hinzu, wenn Sie viele verschiedene Themen-Collections bei uns angemeldet haben. Dies wird den parallelen Zugriff zu diesen beschleunigen.
Wo Sie €€€ sparen können: Es ist weniger wichtig, von einer Celeron CPU zu einer "echten" Intel CPU zu wechseln (diese ist lediglich von Nöten bei Multimedia- oder 3D-Anwendungen) oder zu einer sehr großen Festplatte. Die Daumenregel besagt: Der Suchindex nimmt in etwa so viel Platz ein wie der einfache zu indizierende Text selbst (ohne Graphiken, Bilder und Formatierung).


Im Fall einer In-House Installation: Was passiert auf meinem Server während des Indizierungs-Prozesses?

Wenn die Re-Indizierung veranlasst worden ist (manuell vom Control-Center aus oder automatisch auf reulärer Basis), so werden folgende Aktionen ausgeführt:

  • Der Crawler startet, richtet eine HTTP-Verbindung zur Ziel-Website ein, und lädt deren Webseiten in die Indexdatenbank (normalerweise MySQL). Die Abstände der Downloads sowie deren zur Verfügung stehenden Bandbreiten können in der Konfigurationsdatei geändert werden. Der Crawl-Prozess ist innerhalb weniger Minuten bei kleinen Websites beendet und kann einge Stunden in Anspruch nehmen bei größeren Web-Portalen.

  • Die herunter geladenen Webseiten werden analysiert (Parsing), Attribute werden extrahiert und dem Index hinzu gefügt. Die CPU-Last kann jetzt sehr hoch sein, obwohl die Software ungenutzte CPU-Zeiten nutzt sowie anderen interaktiven Prozessen den Vorrang lässt (z.B. dem HTTP-Server oder dem Suchdienst selbst).

  • Die Festplatte wird für den Suchindex (ständig) benötigt. Ein Teil der Festplatte wird für temporäre Auslagerungsdateien zur Zeit des Re-Indizierens benötigt. Ein Beispiel eines temporären Festplatten-Verbrauchs sind PDF-Dokumente. Der Cralwer lädt ein PDF-Dokument und speichert es für einen Moment bevor es dem PDF-Parser zur Analyse bereit gestellt wird. Die Größe des temporären Festplattenspeichers (Cache) kann reguliert werden. Die Daumenregel besagt, dass der Suchindex in etwa so viel Platz einnimmt wie der einfache zu indizierende Text selbst (ohne Graphiken, Bilder und Formatierung).

  • Zum Schluss der Re-Indizierung wird der Index auf Geschwindigkeit optimiert. Nur die Ressourcen (Cache, Speicher, ...) der Backend-Datenbank (normalerweise MySQL) werden dazu benutzt, in Übereinstimmung mit den vorgenommenen Einstellungen.

  • Fertig. Der Indexer löst alle Speicher-, CPU- und Festplatten-Ressourcen. Die Suchmaschine bedient nun ausschließlich Suchanfragen.


Wie kann ich ausgewählte Ergebnisse in der Ergebnisliste nach oben schieben (Boosting)?

Dazu gibt es in der XML-Schnittstelle eine sogenannte "Boost"-Regel. Sehen Sie dazu das Beispiel:
<query max_results="10" start_from="1" show_attrs="title relevance">
<condition attr="body" predicate="match" value="Synthese"/>
<condition attr="relevance" predicate="ge" value="0"/>
<boost predicate="eq" attr="relevance" value="2" coef="0.4"/>
<boost predicate="eq" attr="relevance" value="1" coef="0.2"/>
<query>
Es werden durch die Regel Dokumente in der Ergbnisliste nach oben befördern, welche der Bedingung entsprechen. Im obigen Beispiel werden Dokument mit einer Relevanz gößer oder gleich 0 in der Ergbnisliste präsentiert. Von diesen werden die Dokumente mit einer Relevanz von 2 oder 1 um die Koeffizienten 0.4 oder 0.2 höher gewichtet (boosting). Ein Boosten mit dem Koeffizienten 0.4 bedeutet dabei, dass das Ranking-Ergebnis (score) des zu boostenden Dokuments um 0.4 höher gewichtet als das des best platzierten (top score) Dokuments (d.h. das Dokument, das vor dem Boosten das beste Ranking hat).


Copyright © 2001-2012 Insuma GmbH. Alle Rechte vorbehalten. Insuma™ und das Insuma-Logo sind eingetragene Warenzeichen der Insuma GmbH. Alle weiteren Logos und Warenzeichen auf dieser Website sind im Besitz der entsprechenden Eigner. Impressum