Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Volltextsuche » Textkonfigurationsobjekte verwalten

 

Einstellungen für Textkonfigurationsobjekte

SQL Anywhere stellt zwei Standard-Textkonfigurationsobjekte bereit, default_char für die Verwendung mit CHAR-Daten und default_nchar für die Verwendung mit NCHAR- und CHAR-Daten. Beachten Sie, dass default_nchar zwar nicht in Verbindung mit beliebigen Daten verwendet werden kann, die Zeichensatzkonvertierung jedoch dennoch durchgeführt wird. Weitere Hinweise zu den Einstellungen für die Textkonfigurationsobjekte default_char und default_nchar finden Sie unter Standard-Textkonfigurationsobjekte.

Sie können testen, wie sich ein Textkonfigurationsobjekt auf die Begriffsegmentierung auswirkt, indem Sie die Systemprozeduren sa_char_terms und sa_nchar_terms verwenden. Siehe sa_char_terms-Systemprozedur und sa_nchar_terms-Systemprozedur.

Die folgende Tabelle beschreibt Einstellungen für Textkonfigurationsobjekte und wie sie sich darauf auswirken, was bei Textindizes mit Textkonfiguration indiziert und wie dabei eine Volltextsuchabfrage interpretiert wird. Beispiel hierfür finden Sie unter Beispiel-Textkonfigurationsobjekte.

  • Externer Vorfilter-Algorithmus (PREFILTER)   Vorfiltern ist der Prozess des Extrahierens von Textdaten aus Dateitypen wie z.B. Word, PDF, HTML und XML. Bei der Textindizierung, können Sie mit Vorfiltern nur die zu indizierenden Daten extrahieren und damit vermeiden, dass nicht benötigte Inhalte wie etwa HTML-Tags auch indiziert werden. Für bestimmte Typen von Dokumente (z.B. Microsoft Word-Dokumente) ist ein Vorfiltern erforderlich, damit Volltextindizes sinnvoll genutzt werden können.

    SQL Anywhere bietet keine integrierte Vorfilter-Funktion. Sie können jedoch eine externe Vorfilterbibliothek zum Vorfiltern entsprechend Ihrer Anforderungen verwenden und dann Ihr Textkonfigurationsobjekt so ändern, dass es die Bibliothek benutzt.

    Die folgende Tabelle beschreibt die Auswirkungen des Werts von PREFILTER EXTERNAL NAME auf die Textindizierung und darauf, wie Abfragezeichenfolgen verarbeitet werden:

    Textindizes Abfragezeichenfolgen

    GENERIC- und NGRAM-Textindizes   Ein externer Vorfilter erhält einen Eingabewert (ein Dokument) und filtert es gemäß den durch die Vorfilterbibliothek definierten Regeln. Der sich daraus ergebende Text wird dann vor dem Erstellen oder Aktualisieren des Textindex an den Begriffsegmentierer übergeben.

    GENERIC- und NGRAM-Textindizes   Abfragezeichenfolgen werden nicht durch einen Vorfilter geleitet, sodass die Einstellung der PREFILTER EXTERNAL NAME-Klausel keine Auswirkungen auf Abfragezeichenfolgen hat.

    Siehe auch: Externe Vorfilterbibliotheken und PREFILTER EXTERNAL NAME-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

    Das Verzeichnis ExternalLibrariesFullText in Ihrem SQL Anywhere-Installationsverzeichnis enthält Codebeispiel für Vorfilter und Begriffsegmentierer. Dieses Verzeichnis befindet sich im Verzeichnis Samples. Weitere Informationen zum Speicherort des Verzeichnisses Samples finden Sie unter Beispielverzeichnis.

  • Begriffsegmentieralgorithmus (TERM BREAKER)   Die TERM BREAKER-Einstellung gibt den Algorithmus an, der für die Aufteilung von Zeichenfolgen in Begriffe verwendet wird. Zur Auswahl stehen GENERIC, um Begriffe, und NGRAM, um N-Gramme zu speichern. Bei GENERIC, können Sie den integrierten Begriffsegmentieralgorithmus oder einen externen Begriffsegmentierer verwenden. Siehe TERM BREAKER-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

    Die folgende Tabelle beschreibt die Auswirkungen des Werts von TERM BREAKER auf die Textindizierung und darauf, wie Abfragezeichenfolgen verarbeitet werden:

    Textindizes Abfragezeichenfolgen
    • GENERIC-Textindex   Die Performance von GENERIC-Textindizes kann schneller sein als diejenige von NGRAM-Textindizes. Sie können allerdings keine Fuzzy-Suche in GENERIC-Textindizes durchführen.

      Beim Erstellen eines GENERIC-Textindexes mit dem integrierten Algorithmus werden Gruppen von alphanumerischen Zeichen, die zwischen nicht-alphanumerischen Zeichen auftreten, vom Datenbankserver als Begriffe verarbeitet und es werden ihnen Positionen zugewiesen.

      Beim Erstellen eines GENERIC-Textindexes mit einer externen Begriffsegmentiererbibliothek, werden Begriffe und ihre jeweilige Position durch die externe Bibliothek definiert.

      Sobald die Begriffe durch den Begriffsegmentierer identifiziert wurden, wird jeder Begriff, der die Einschränkungen für die Begriffslänge nicht erfüllt oder in der Stoppliste enthalten ist, zwar gezählt, aber nicht in den Textindex eingefügt.

    • NGRAM-Textindex   Ein N-Gramm ist eine Gruppe von Zeichen mit der Länge n, wobei n der Wert von MAXIMUM TERM LENGTH ist.

      Wenn er einen NGRAM-Textindex aufbaut, behandelt der Datenbankserver jede Gruppe von alphanumerischen Zeichen zwischen nicht-alphanumerischen Zeichen wie einen Begriff. Wenn die Begriffe definiert sind, teilt der Datenbankserver die Begriffe in N-Gramme auf. Während dieses Vorgangs werden Begriffe, die kürzer als n sind, und N-Gramme, die in der Stoppliste enthalten sind, verworfen.

      Beispiel: Bei einem NGRAM-Textindex mit MAXIMUM TERM LENGTH 3 wird die Zeichenfolge 'my red table' im Textindex als folgendes N-Gramm dargestellt: red tab abl ble.

      Bei N-Grammen werden die Positionsinformationen der N-Gramme gespeichert, und nicht die Positionsinformationen für die ursprünglichen Begriffe.

    Bei der syntaktischen Analyse einer CONTAINS-Abfrage extrahiert der Datenbankserver Schlüsselwörter und Sonderzeichen aus der Abfragezeichenfolge und wendet anschließend den Begriffsegmentieralgorithmus auf die verbleibenden Begriffe an. Wenn beispielsweise die Abfragezeichenfolge 'ab_cd* AND b*' ist, werden das Sternchen * und das Schlüsselwort AND extrahiert und die Zeichenfolgen ab_cd und b werden dem jeweiligen Begriffsegmentieralgorithmus zur getrennten syntaktischen Analyse übergeben.

    Weitere Hinweise zu Schlüsselwörtern und Sonderzeichen in der Volltextsuche finden Sie unter CONTAINS-Suchbedingung.

    • GENERIC-Textindex   Bei der Abfrage eines GENERIC-Textindexes werden Begriffe in der Abfragezeichenfolge so abgearbeitet, als ob sie indiziert würden. Eine Übereinstimmung wird festgestellt, indem Abfragebegriffe mit Begriffen im Textindex verglichen werden.

    • NGRAM-Textindex   Bei der Abfrage eines NGRAM-Textindexes werden Begriffe in der Abfragezeichenfolge so abgearbeitet, als ob sie indiziert würden. Eine Übereinstimmung wird festgestellt, indem N-Gramme aus den Abfragebegriffen mit N-Grammen aus den indizierten Begriffen verglichen werden. Weitere Hinweise zur Durchführung einer Präfixsuche in NGRAM-Textindizes finden Sie unter Präfixsuche.

    Sofern nicht anders definiert, wird der Standardwert für TERM BREAKER von der Einstellung im Standard-Textkonfigurationsobjekt bezogen. Wenn kein Begriffsegmentierer im Standard-Textkonfigurationsobjekt definiert ist, wird der interne Begriffsegmentierer verwendet. Siehe Standard-Textkonfigurationsobjekte.

    Siehe auch: TERM BREAKER-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

  • Begriff-Mindestlängeneinstellung (MINIMUM TERM LENGTH)   Die MINIMUM TERM LENGTH-Einstellung gibt die Mindestlänge (in Zeichen) für Begriffe an, die in den Index eingefügt werden oder nach denen in einer Volltextabfrage gesucht wird. MINIMUM TERM LENGTH hat für NGRAM-Textindizes keine Relevanz.

    MINIMUM TERM LENGTH hat spezielle Auswirkungen bei der Präfixsuche. Siehe Präfixsuche.

    Der Wert von MINIMUM TERM LENGTH muss größer als 0 sein. Wenn Sie den Wert größer als MAXIMUM TERM LENGTH setzen, wird MAXIMUM TERM LENGTH automatisch angepasst, um gleich groß wie MINIMUM TERM LENGTH zu sein.

    Sofern nicht anders definiert, wird der Standardwert für MINIMUM TERM LENGTH von der Einstellung im Standard-Textkonfigurationsobjekt bezogen, die üblicherweise 1 ist. Siehe Standard-Textkonfigurationsobjekte.

    Die folgende Tabelle beschreibt die Auswirkungen des Werts von MINIMUM TERM LENGTH auf die Textindizierung und darauf, wie Abfragezeichenfolgen verarbeitet werden:

    Textindizes Abfragezeichenfolgen

    GENERIC-Textindex   Bei GENERIC-Textindizes enthält der Textindex keine Wörter, die kürzer als MINIMUM TERM LENGTH sind.

    NGRAM-Textindex   Bei NGRAM-Textindizes wird diese Einstellung ignoriert.

    GENERIC-Textindex   Wenn ein GENERIC-Textindex abgefragt wird, werden Abfragebegriffe, die kürzer als MINIMUM TERM LENGTH sind, ignoriert, weil sie nicht im Textindex vorkommen können.

    NGRAM-Textindex   Die MINIMUM TERM LENGTH-Einstellung hat bei Volltextabfragen in NGRAM-Textindizes keine Auswirkung.

    Siehe auch: MINIMUM TERM LENGTH-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

  • Begriff-Höchstlängeneinstellung (MAXIMUM TERM LENGTH)   Die MAXIMUM TERM LENGTH-Einstellung wird, abhängig vom Begriffsegmentieralgorithmus, unterschiedlich verwendet.

    Der Wert von MAXIMUM TERM LENGTH muss kleiner oder gleich 60 sein. Wenn Sie den Wert kleiner als MINIMUM TERM LENGTH setzen, wird MINIMUM TERM LENGTH automatisch angepasst, um gleich groß wie MAXIMUM TERM LENGTH zu sein.

    Der Standardwert für diese Einstellung wird von der Einstellung im Standard-Textkonfigurationsobjekt bezogen, die üblicherweise 20 ist. Siehe Standard-Textkonfigurationsobjekte.

    Sofern nicht anders definiert, wird der Standardwert für MAXIMUM TERM LENGTH von der Einstellung im Standard-Textkonfigurationsobjekt bezogen, die üblicherweise 20 ist. Siehe Standard-Textkonfigurationsobjekte.

    Die folgende Tabelle beschreibt die Auswirkungen des Werts von MAXIMUM TERM LENGTH auf die Textindizierung und darauf, wie Abfragezeichenfolgen verarbeitet werden:

    Textindizes Abfragezeichenfolgen

    GENERIC-Textindizes   Bei GENERIC-Textindizes gibt MAXIMUM TERM LENGTH die Höchstlänge (in Zeichen) für Begriffe an, die in den Textindex eingefügt werden.

    NGRAM-Textindex   Bei NGRAM-Textindizes legt MAXIMUM TERM LENGTH die Länge der N-Gramme fest, in die Begriffe aufgeteilt werden. Die entsprechende Längenauswahl für N-Gramme hängt von der Sprache ab. Üblich sind 4 oder 5 Zeichen für Englisch und 2 oder 3 Zeichen für Chinesisch.

    GENERIC-Textindizes   Bei GENERIC-Textindizes werden Abfragebegriffe ignoriert, die länger als MAXIMUM TERM LENGTH sind, weil sie im Textindex nicht vorkommen können.

    NGRAM-Textindex   Bei NGRAM-Textindizes werden Abfragebegriffe in N-Gramme der Länge n aufgeteilt, wobei n dasselbe wie MAXIMUM TERM LENGTH ist. Anschließend verwendet der Datenbankserver die N-Gramme, um den Textindex zu durchsuchen. Begriffe, die kürzer als MAXIMUM TERM LENGTH sind, werden ignoriert, weil sie nicht mit den N-Grammen im Textindex übereinstimmen werden. Aus diesem Grund funktionieren Nachbarschaftssuchen nicht, es sei denn, die Argumente sind Präfixe der Länge n.

    Siehe auch: MAXIMUM TERM LENGTH-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

  • Stopplisteneinstellung (STOPLIST)   Die Stopplisteneinstellung gibt die Begriffe an, die nicht indiziert werden dürfen.

    Sofern nicht anders definiert, wird der Standardwert für diese Einstellung von der Einstellung im Standard-Textkonfigurationsobjekt bezogen, die üblicherweise eine leere Stoppliste ist. Siehe Standard-Textkonfigurationsobjekte.

    STOPLIST-Auswirkung auf Textindizes STOPLIST-Auswirkung auf Abfragebegriffe

    GENERIC-Textindizes   Bei GENERIC-Textindizes werden Begriffe, die in der Stoppliste enthalten sind, nicht in den Textindex eingefügt.

    NGRAM-Textindex   Bei NGRAM-Textindizes wird der Textindex nicht die N-Gramme enthalten, die aus den Begriffen in der Stoppliste geformt wurden.

    GENERIC-Textindizes   Bei GENERIC-Textindizes werden Abfragebegriffe ignoriert, die in der Stoppliste enthalten sind, weil sie im Textindex nicht vorkommen können.

    NGRAM-Textindex   Begriffe in der Stoppliste werden in N-Gramme aufgeteilt und die N-Gramme werden für das Filtern von Begriffen verwendet. Gleichermaßen werden Abfragebegriffe in N-Gramme aufgeteilt und jene, die mit N-Grammen in der Stoppliste übereinstimmen, werden gelöscht, weil sie im Textindex nicht vorkommen können.

    Die Einstellungen im Textkonfigurationsobjekt werden auf die Stoppliste angewendet, wenn diese syntaktisch analysiert wird. Das heißt, der angegebene Begriffsegmentierer und die Einstellungen für Minimum bzw. Maximum der Länge werden angewendet.

    Bei NGRAM-Textindizes können Stopplisten zu unerwarteten Ergebnissen führen, weil die Stoppliste in N-Gramm-Form gespeichert wird, und nicht in Form der angegebenen Stopplistenbegriffe. Beispiel: Wenn Sie bei einem NGRAM-Textindex, bei dem MAXIMUM TERM LENGTH 3 ist, STOPLIST 'there' eingeben, werden die folgenden N-Gramme als Stoppliste gespeichert: the her ere. Dies wirkt sich auf die Fähigkeit aus, Begriffe abzufragen, die die N-Gramme "the" "her" und "ere" enthalten.

    Hinweis

    Die Einschränkungen, die für die Angabe von Zeichenfolgenliteralen gelten, gelten auch für Stopplisten. So müssen beispielsweise die Apostrophe mit Escapezeichen versehen werden, usw. Weitere Informationen zur Formatierung von Zeichenfolgenliteralen finden Sie unter Zeichenfolgenliterale.

    Das Beispielverzeichnis enthält Beispielcode, der Stopplisten für mehrere Sprachen lädt. Es wird empfohlen, diese Beispiel-Stopplisten nur bei GENERIC-Textindizes zu verwenden. Den Speicherort des Beispielverzeichnisses finden Sie unter Beispielverzeichnis.

    Siehe auch: STOPLIST-Klausel, ALTER TEXT CONFIGURATION-Anweisung.

  • Formateinstellungen für Datum, Uhrzeit und Zeitstempel   Wenn ein Textkonfigurationsobjekt erstellt wird, werden die Werte der Optionen date_format, time_format, timestamp_format und timestamp_with_time_zone_format für die aktuelle Verbindung mit dem Textkonfigurationsobjekt gespeichert. Diese Optionswerte steuern, wie die Spalten DATE, TIME und TIMESTAMP für mit diesem Textkonfigurationsobjekt erstellte Textindizes formatiert werden. Sie können diese Optionswerte für das Textkonfigurationsobjekt nicht explizit einstellen. Die Einstellungen spiegeln die aktiven Einstellungen für die Verbindung wider, von der das Textkonfigurationsobjekt erstellt wurde. Sie können die Einstellungen jedoch ändern. Siehe Textkonfigurationsobjekt ändern und SAVE OPTION VALUES-Klausel der ALTER TEXT CONFIGURATION-Anweisung.

 Siehe auch