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 » Externe Begriffsegmentierer- und Vorfilterbibliotheken

 

Gründe für die Verwendung einer externen Begriffsegmentierer- oder Vorfilterbibliothek

Die Volltextsuche in SQL Anywhere wird mithilfe eines Textindexes durchgeführt. Jeder Wert in einer Spalte, für die ein Textindex erstellt wurde, wird als ein Dokument bezeichnet. Wenn ein Textindex erstellt wurde, wird jedes Dokument von einem integrierten Begriffsegmentierer zur Ermittlung der im Dokument enthaltenen Begriffe (auch als Token bezeichnet) und der Position der Begriffe im Dokument verarbeitet. Der integrierte Begriffsegmentierer segmentiert Begriffe auch für die Dokumente (Textkomponenten) einer Abfragezeichenfolge. Beispiel: Die Abfragezeichenfolge 'rain or shine' besteht aus zwei Dokumenten, 'rain' und 'shine', verbunden durch den Operator OR. Der integrierte Begriffsegmentieralgorithmus wird auch verwendet, um die Stoppliste und die Eingabe einer sa_char_terms-Systemprozedur in Begriffe zu segmentieren.

Abhängig von den Anforderungen Ihrer Anwendung stellen Sie möglicherweise unerwünschte oder einschränkende Verhaltensweisen des integrierten Begriffsegmentierers fest. Beispielsweise bietet der integrierte Begriffsegmentierer keine sprachspezifische Begriffsegmentierung. Im Folgenden finden Sie einige Gründe, die dafür sprechen, einen benutzerdefinierten Begriffsegmentierer zu installieren:

  • Keine sprachspezifische Begriffsegmentierung   Linguistische Regeln in Bezug darauf, was einen Begriff darstellt, unterscheiden sich je nach Sprache. Aus diesem Grund sind auch Begriffsegmentierregeln von Sprache zu Sprache verschieden. Der integrierte Begriffsegmentierer bietet keine sprachspezifischen Begriffsegmentierregeln.

  • Umgang mit Wörtern mit Apostroph   Das Wort "they' ll" wird vom GENERIC-Begriffsegmentierer als "they ll" behandelt. Sie können jedoch einen benutzerdefinierten Begriffsegmentierer konfigurieren, der den Apostroph als Teil des Worts behandelt.

  • Keine Unterstützung für die Ersetzung von Begriffen   Sie können nicht festlegen, durch welche anderen Begriffe ein Begriff ersetzt werden soll. Beispielsweise bei der Indizierung des Worts "they' ll" ist es möglicherweise angebracht, diese als zwei Begriffe zu speichern: "they" und "will". Auf ähnliche Weise kann es sinnvoll sein, die Ersetzung von Begriffen zu verwenden, um eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung in einer Datenbank durchzuführen, in der die Groß- und Kleinschreibung berücksichtigt wird.

In SQL Anywhere können Sie außerdem externe Vorfilterbibliotheken für die Durchführung von Vorfilterungen an Daten vor ihrer Indizierung verwenden. Das Vorfiltern erlaubt Ihnen, ausschließlich den zu indizierenden Textinhalt eines Dokuments zu extrahieren. Beispiel: Angenommen Sie möchten einen Textindex für eine Spalte mit XML-Werten erstellen. Mit einem Vorfilter können Sie die XML-Tags herausfiltern, damit diese nicht gemeinsam mit dem Inhalt indiziert werden.

SQL Anywhere stellt eine API bereit, die Sie verwenden können, um auf benutzerdefinierte Vorfilter und Begriffsegmentierer-Bibliotheken bzw. auf Bibliotheken von Drittherstellern zuzugreifen, wenn Sie Volltextindizes erstellen und aktualisieren. Das bedeutet, Sie können externe Bibliotheken verwenden, um bei Dokumentformaten wie XML, PDF und Word unerwünschte Begriffe und Inhalte vor der Indizierung des Inhalts zu entfernen.

Es werden einige Beispielvorfilter und Begriffsegmentierer-Bibliotheken in Ihrem Samples-Verzeichnis bereitgestellt, die Sie bei der Planung eigener Bibliotheken unterstützen. Sie können aber auch die API verwenden, um auf Bibliotheken von Drittherstellern zuzugreifen. Wenn Microsoft Office auf dem System installiert ist, auf dem der Datenbankserver ausgeführt wird, sind IFilters for Office-Dokumente, wie z.B. Word und Excel, verfügbar. Wenn auf dem Server Acrobat Reader installiert ist, dann steht wahrscheinlich ein PDF IFilter zur Verfügung.