Wählen Sie den richtigen Analysator für Ihren Anwendungsfall

Dieser Leitfaden konzentriert sich auf die praktische Entscheidungsfindung bei der Auswahl eines Analysators. Technische Details zu den Komponenten eines Analysators und zum Hinzufügen von Analysatorparametern finden Sie unter „Analysator-Übersicht“.

Analysatoren in 2 Minuten verstehen

In Milvus verarbeitet ein Analysator den in diesem Feld gespeicherten Text, um ihn für Funktionen wie die Volltextsuche (BM25), die Phrasenübereinstimmung oder die Textübereinstimmung durchsuchbar zu machen. Stellen Sie sich einen Textprozessor vor, der Ihre Rohdaten in durchsuchbare Tokens umwandelt.

Ein Analysator arbeitet in einer einfachen, zweistufigen Pipeline:

Analyzer Workflow Analyzer-Workflow

  1. Tokenisierung (erforderlich): In dieser ersten Stufe wird ein Tokenizer angewendet, um eine fortlaufende Textzeichenfolge in diskrete, aussagekräftige Einheiten, sogenannte Token, aufzuteilen. Die Tokenisierungsmethode kann je nach Sprache und Inhaltstyp erheblich variieren.

  2. Token-Filterung (optional): Nach der Tokenisierung werden Filter angewendet, um die Token zu modifizieren, zu entfernen oder zu verfeinern. Zu diesen Vorgängen gehören beispielsweise die Umwandlung aller Token in Kleinbuchstaben, das Entfernen häufiger, bedeutungsloser Wörter (sogenannter Stoppwörter) oder die Reduzierung von Wörtern auf ihre Stammform (Stemming).

Beispiel:

Input: "Hello World!" 
       1. Tokenization → ["Hello", "World", "!"]
       2. Lowercase & Punctuation Filtering → ["hello", "world"]

Warum die Wahl des Analysators wichtig ist

Die Wahl eines falschen Analysators kann dazu führen, dass relevante Dokumente nicht mehr auffindbar sind oder irrelevante Ergebnisse zurückgegeben werden.

Die folgende Tabelle fasst häufige Probleme zusammen, die durch eine unsachgemäße Auswahl des Analysators verursacht werden, und bietet umsetzbare Lösungen zur Diagnose von Suchproblemen.

Problem

Symptom

Beispiel (Eingabe & Ausgabe)

Ursache (ungeeigneter Analysator)

Lösung (geeigneter Analysator)

Übermäßige Tokenisierung

Textabfragen nach Fachbegriffen, Bezeichnern oder URLs finden keine relevanten Dokumente.

  • "user_id" → ['user', 'id']

  • "C++" → ['c']

standard Analysator

Verwenden Sie einen whitespace Tokenizer; kombinieren Sie diesen mit einem alphanumonly Filter.

Unter-Tokenisierung

Die Suche nach einem Bestandteil einer aus mehreren Wörtern bestehenden Phrase liefert keine Dokumente, die die vollständige Phrase enthalten.

"state-of-the-art" → ['state-of-the-art']

Analysator mit einem whitespace Tokenizer

Verwenden Sie einen standard Tokenizer, um anhand von Satzzeichen und Leerzeichen zu trennen; verwenden Sie einen benutzerdefinierten Regex -Filter.

Sprachliche Unstimmigkeiten

Die Suchergebnisse für eine bestimmte Sprache sind unsinnig oder fehlen gänzlich.

Chinesischer Text: "机器学习" → ['机器学习'] (ein Token)

english Analysator

Verwenden Sie einen sprachspezifischen Analysator, wie z. B. chinese.

Nicht übereinstimmende Eingabemethode

Benutzer geben Pinyin ein, der indizierte Text enthält jedoch chinesische Schriftzeichen.

Chinesischer Text: "足球"; Suchtext: "zuqiu"

Analysator, der ausschließlich Token mit chinesischen Schriftzeichen ausgibt

Verwenden Sie einen benutzerdefinierten Analysator mit dem jieba Tokenizer und pinyin Filter.

Erste Frage: Müssen Sie einen Analysator auswählen?

In vielen Anwendungsfällen müssen Sie nichts Besonderes tun. Lassen Sie uns klären, ob dies auch auf Sie zutrifft.

Standardverhalten: „ standard “-Analysator

Wenn Sie bei der Verwendung von Textabruf-Funktionen wie der Volltextsuche keinen Analysator angeben, verwendet Milvus automatisch den standard Analysator.

Der „ standard “-Analysator:

  • Teilt den Text anhand von Leerzeichen und Satzzeichen auf

  • Wandelt alle Token in Kleinbuchstaben um

  • Entfernt eine integrierte Liste gängiger englischer Stoppwörter sowie den Großteil der Satzzeichen

Beispiel für eine Transformation:

Input:  "The Milvus vector database is built for scale!"
Output: ['the', 'milvus', 'vector', 'database', 'is', 'built', 'scale']

Entscheidungskriterien: Eine schnelle Überprüfung

Anhand dieser Tabelle können Sie schnell feststellen, ob der Standard-Analysator „ standard “ Ihren Anforderungen entspricht. Ist dies nicht der Fall, müssen Sie einen anderen Weg wählen.

Ihr Inhalt

Ist der Standard-Analyzer geeignet?

Warum

Was Sie benötigen

Englische Blogbeiträge

✅ Ja

Das Standardverhalten ist ausreichend.

Verwenden Sie die Standardeinstellung (keine Konfiguration erforderlich).

Chinesische Dokumente

❌ Nein

Chinesische Wörter enthalten keine Leerzeichen und werden als ein Token behandelt.

Verwenden Sie einen integrierten chinese Analysator.

Arabische Dokumente

❌ Nein

Arabischer Text kann Buchstabenvarianten, diakritische Zeichen, Tatweel, arabisch-indische Ziffern und gängige arabische Stoppwörter enthalten, die eine sprachspezifische Behandlung erfordern.

Verwenden Sie einen integrierten arabic Analysator.

Thailändische Dokumente

❌ Nein

Thailändischer Text verwendet in der Regel keine Leerzeichen zwischen den Wörtern, daher ist eine sprachspezifische Worttrennung erforderlich.

Verwenden Sie einen integrierten thai Analysator.

Technische Dokumentation

❌ Nein

Zeichen wie „ C++ “ werden von den Begriffen entfernt.

Erstellen Sie einen benutzerdefinierten Analysator mit einem whitespace Tokenizer und einem alphanumonly Filter.

Sprachen mit durch Leerzeichen getrennten Wörtern, wie z. B. Französisch oder Spanisch

⚠️ Möglicherweise

werden Zeichen mit Akzenten (café vs. cafe) möglicherweise nicht abgeglichen.

Ein benutzerdefinierter Analysator mit dem asciifolding wird für bessere Ergebnisse empfohlen.

Mehrsprachige oder unbekannte Sprachen

❌ Nein

Dem Analyzer „ standard “ fehlt die sprachspezifische Logik, die für die Verarbeitung unterschiedlicher Zeichensätze und Tokenisierungsregeln erforderlich ist.

Verwenden Sie einen benutzerdefinierten Analysator mit dem icu Tokenizer für eine Unicode-fähige Tokenisierung.

Alternativ sollten Sie die Konfiguration mehrsprachiger Analysatoren oder eines Sprachidentifikators in Betracht ziehen, um mehrsprachige Inhalte präziser zu verarbeiten.

Wenn der standardmäßige „ standard “-Analysator Ihre Anforderungen nicht erfüllen kann, müssen Sie einen anderen implementieren. Dabei stehen Ihnen zwei Möglichkeiten zur Verfügung:

Möglichkeit A: Verwendung integrierter Analysatoren

Integrierte Analysatoren sind vorkonfigurierte Lösungen für gängige Sprachen. Sie sind der einfachste Einstieg, wenn der Standard-Analysator nicht optimal passt.

Verfügbare integrierte Analysatoren

Analysator

Unterstützte Sprache

Komponenten

Hinweise

standard

Die meisten Sprachen mit Leerzeichen als Trennzeichen (Englisch, Französisch, Deutsch, Spanisch usw.)

  • Tokenizer: standard

  • Filter: lowercase

Allgemeiner Analysator für die erste Textverarbeitung. Für einsprachige Szenarien bieten sprachspezifische Analysatoren (wie english) eine bessere Leistung.

english

Speziell für Englisch entwickelt, wendet Stemming und das Entfernen von Stoppwörtern an, um eine bessere semantische Übereinstimmung im Englischen zu erzielen

  • Tokenizer: standard

  • Filter: lowercase, stemmer, stop

Empfohlen für rein englischsprachige Inhalte anstelle von standard.

chinese

Chinesisch

  • Tokenizer: jieba

  • Filter: cnalphanumonly

Verwendet derzeit standardmäßig das Wörterbuch für vereinfachtes Chinesisch.

arabic

Arabisch

  • Tokenizer: standard

  • Filter: lowercase, decimaldigit, arabic_normalization, stemmer, stop

Empfohlen für arabischen Text anstelle von standard.

thai

Thai

  • Tokenizer: thai

  • Filter: lowercase, decimaldigit, stop

Empfohlen für thailändischen Text anstelle von standard oder einer auf Leerzeichen basierenden Tokenisierung.

Implementierungsbeispiel

Um einen integrierten Analysator zu verwenden, geben Sie bei der Definition Ihres Feldschemas einfach dessen Typ im Feld „ analyzer_params “ an.

# Using built-in English analyzer
analyzer_params = {
    "type": "english"
}

# Applying analyzer config to target VARCHAR field in your collection schema
schema.add_field(
    field_name='text',
    datatype=DataType.VARCHAR,
    max_length=200,
    enable_analyzer=True,
    analyzer_params=analyzer_params,
)

Ausführliche Informationen zur Verwendung finden Sie unter „Volltextsuche“, „Textübereinstimmung“ oder „Phrasenübereinstimmung“.

Möglichkeit B: Erstellen eines benutzerdefinierten Analysators

Wenn die integrierten Optionen Ihren Anforderungen nicht entsprechen, können Sie einen benutzerdefinierten Analysator erstellen, indem Sie einen Tokenizer mit einer Reihe von Filtern kombinieren. Dadurch erhalten Sie die volle Kontrolle über die Textverarbeitungs-Pipeline.

Schritt 1: Wählen Sie den Tokenizer entsprechend der Sprache aus

Wählen Sie Ihren Tokenizer entsprechend der Hauptsprache Ihrer Inhalte aus:

Westliche Sprachen

Für Sprachen, in denen mit Leerzeichen getrennt wird, stehen Ihnen folgende Optionen zur Verfügung:

Tokenizer

So funktioniert es

Am besten geeignet für

Beispiele

standard

Teilt Text anhand von Leerzeichen und Satzzeichen auf

Allgemeiner Text, gemischte Zeichensetzung

  • Eingabe: "Hello, world! Visit example.com"

  • Ausgabe: ['Hello', 'world', 'Visit', 'example', 'com']

whitespace

Teilt nur an Leerzeichen

Vorverarbeiteter Inhalt, vom Benutzer formatierter Text

  • Eingabe: "user_id = get_user_data()"

  • Ausgabe: ['user_id', '=', 'get_user_data()']

Ostasiatische Sprachen

Sprachen, in denen Leerzeichen zwischen Wörtern nicht einheitlich verwendet werden, erfordern spezielle Tokenizer für eine korrekte Worttrennung:

Chinesisch

Tokenizer

So funktioniert es

Am besten geeignet für

Beispiele

jieba

Chinesische, auf einem Wörterbuch basierende Segmentierung mit intelligentem Algorithmus

Empfohlen für chinesische Inhalte – kombiniert ein Wörterbuch mit intelligenten Algorithmen, die speziell für Chinesisch entwickelt wurden

  • Eingabe: "机器学习是人工智能的一个分支"

  • Ausgabe: ['机器', '学习', '是', '人工', '智能', '人工智能', '的', '一个', '分支']

lindera

Reine, auf einem Wörterbuch basierende morphologische Analyse mit chinesischem Wörterbuch (cc-cedict)

Im Vergleich zu jieba verarbeitet diese Methode chinesischen Text auf allgemeinere Weise

  • Eingabe: "机器学习算法"

  • Ausgabe: ["机器", "学习", "算法"]

Thai

Für die meisten thailändischen Texte verwenden Sie den integrierten thai Analysator. Verwenden Sie den eigenständigen thai Tokenizer nur, wenn Sie eine benutzerdefinierte Analysator-Pipeline erstellen müssen.

Tokenizer

So funktioniert es

Am besten geeignet für

Beispiele

thai

Teilt thailändischen Text in Wort-Token auf und filtert Segmente heraus, die nur aus Leerzeichen und Satzzeichen bestehen

Benutzerdefinierte Analysator-Pipelines für thailändischen oder gemischten thailändisch-englischen Text

  • Eingabe: "สวัสดี! ทดสอบ, ระบบ Milvus"

  • Ausgabe: ['สวัสดี', 'ทดสอบ', 'ระบบ', 'Milvus']

Japanisch und Koreanisch

Sprache

Tokenizer

Wörterbuchoptionen

Am besten geeignet für

Beispiele

Japanisch

lindera

ipadic (Allzweck), ipadic-neologd (moderne Begriffe), unidic (akademisch)

Morphologische Analyse mit Behandlung von Eigennamen

  • Eingabe: "東京都渋谷区"

  • Ausgabe: ["東京", "都", "渋谷", "区"]

Koreanisch

lindera

ko-dic

Koreanische morphologische Analyse

  • Eingabe: "안녕하세요"

  • Ausgabe: ["안녕", "하", "세요"]

Mehrsprachige oder unbekannte Sprachen

Für Inhalte, bei denen die Sprachen nicht vorhersehbar sind oder innerhalb von Dokumenten gemischt vorkommen:

Tokenizer

So funktioniert es

Am besten geeignet für

Beispiele

icu

Unicode-fähige Tokenisierung (International Components for Unicode)

Gemischte Schriftsysteme, unbekannte Sprachen oder wenn eine einfache Tokenisierung ausreicht

  • Eingabe: "Hello 世界 مرحبا"

  • Ausgabe: ['Hello', ' ', '世界', ' ', 'مرحبا']

Wann sollte icu verwendet werden:

  • Bei gemischten Sprachen, bei denen eine Sprachidentifizierung nicht praktikabel ist.

  • Sie möchten den Mehraufwand durch mehrsprachige Analysatoren oder den Sprachidentifikator vermeiden.

  • Der Inhalt hat eine Hauptsprache mit vereinzelten Fremdwörtern, die kaum zur Gesamtbedeutung beitragen (z. B. englischer Text mit vereinzelten Markennamen oder Fachbegriffen auf Japanisch oder Französisch).

Alternative Ansätze: Für eine präzisere Verarbeitung mehrsprachiger Inhalte sollten Sie den Einsatz von Mehrsprachenanalysatoren oder des Sprachidentifikators in Betracht ziehen. Weitere Informationen finden Sie unter „Mehrsprachenanalysatoren “ oder „Sprachidentifikator“.

Schritt 2: Fügen Sie Filter für eine höhere Präzision hinzu

Nachdem Sie Ihren Tokenizer ausgewählt haben, wenden Sie Filter an, die auf Ihren spezifischen Suchanforderungen und den Eigenschaften des Inhalts basieren.

Häufig verwendete Filter

Diese Filter sind für die meisten durch Leerzeichen getrennten Sprachkonfigurationen (Englisch, Französisch, Deutsch, Spanisch usw.) unverzichtbar und verbessern die Suchqualität erheblich:

Filter

So funktioniert es

Wann zu verwenden

Beispiele

lowercase

Alle Token in Kleinbuchstaben umwandeln

Universell – gilt für alle Sprachen mit Groß-/Kleinschreibung

  • Eingabe: ["Apple", "iPhone"]

  • Ausgabe: [['apple'], ['iphone']]

stemmer

Wörter auf ihre Grundform reduzieren

Sprachen mit Wortbeugung (Englisch, Französisch, Deutsch usw.)

Für Englisch:

  • Eingabe: ["running", "runs", "ran"]

  • Ausgabe: [['run'], ['run'], ['ran']]

stop

Entferne häufig vorkommende, bedeutungslose Wörter

Die meisten Sprachen – besonders effektiv bei Sprachen mit Leerzeichen als Trennzeichen

  • Eingabe: ["the", "quick", "brown", "fox"]

  • Ausgabe: [[], ['quick'], ['brown'], ['fox']]

Bei ostasiatischen Sprachen (Chinesisch, Japanisch, Koreanisch usw.) sollten Sie sich stattdessen auf sprachspezifische Filter konzentrieren. Diese Sprachen verwenden in der Regel andere Ansätze zur Textverarbeitung und profitieren möglicherweise nicht wesentlich vom Stemming.

Filter zur Textnormalisierung

Diese Filter standardisieren Textvariationen, um die Konsistenz beim Abgleich zu verbessern:

Filter

Funktionsweise

Anwendungsfälle

Beispiele

asciifolding

Umwandlung von Zeichen mit Akzenten in ASCII-Entsprechungen

Internationale Inhalte, nutzergenerierte Inhalte

  • Eingabe: ["café", "naïve", "résumé"]

  • Ausgabe: [['cafe'], ['naive'], ['resume']]

Token-Filterung

Steuern Sie anhand des Zeicheninhalts oder der Länge, welche Token beibehalten werden:

Filter

So funktioniert es

Anwendungsfälle

Beispiele

removepunct

Einzelne Interpunktionszeichen entfernen

Bereinigt die Ausgabe der Tokenizer jieba, lindera und icu, die Satzzeichen als einzelne Token zurückgeben

  • Eingabe: ["Hello", "!", "world"]

  • Ausgabe: [['Hello'], ['world']]

alphanumonly

Nur Buchstaben und Zahlen beibehalten

Technische Inhalte, bereinigte Textverarbeitung

  • Eingabe: ["user123", "test@email.com"]

  • Ausgabe: [['user123'], ['test', 'email', 'com']]

length

Entferne Token außerhalb des angegebenen Längenbereichs

Rauschen filtern (übermäßig lange Token)

  • Eingabe: ["a", "very", "extraordinarily"]

  • Ausgabe: [['a'], ['very'], []] (wenn max=10)

regex

Benutzerdefinierte, musterbasierte Filterung

Domänenspezifische Anforderungen an Token

  • Eingabe: ["test123", "prod456"]

  • Ausgabe: [[], ['prod456']] (wenn expr="^prod")

Sprachspezifische Filter

Diese Filter berücksichtigen spezifische Sprachmerkmale:

Filter

Sprache

Funktionsweise

Beispiele

decompounder

Deutsch

Teilt zusammengesetzte Wörter in durchsuchbare Bestandteile auf

  • Eingabe: ["dampfschifffahrt"]

  • Ausgabe: [['dampf', 'schiff', 'fahrt']]

cnalphanumonly

Chinesisch

Behält chinesische Schriftzeichen + alphanumerische Zeichen bei

  • Eingabe: ["Hello", "世界", "123", "!@#"]

  • Ausgabe: [['Hello'], ['世界'], ['123'], []]

cncharonly

Chinesisch

Behält nur chinesische Schriftzeichen bei

  • Eingabe: ["Hello", "世界", "123"]

  • Ausgabe: [[], ['世界'], []]

pinyin

Chinesisch

Gibt Pinyin-Tokenformen für chinesische Token aus

  • Eingabe: ["中文"]

  • Ausgabe: [['中文', 'zhong', 'wen']]

Schritt 3: Kombinieren und implementieren

Um Ihren benutzerdefinierten Analysator zu erstellen, definieren Sie den Tokenizer und eine Liste von Filtern im Wörterbuch „ analyzer_params “. Die Filter werden in der Reihenfolge angewendet, in der sie aufgeführt sind.

# Example: A custom analyzer for technical content
analyzer_params = {
    "tokenizer": "whitespace",
    "filter": ["lowercase", "alphanumonly"]
}

# Applying analyzer config to target VARCHAR field in your collection schema
schema.add_field(
    field_name='text',
    datatype=DataType.VARCHAR,
    max_length=200,
    enable_analyzer=True,
    analyzer_params=analyzer_params,
)

Abschließend: Testen mit run_analyzer

Überprüfen Sie Ihre Konfiguration immer, bevor Sie sie auf eine Sammlung anwenden:

# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"

# Run analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Analyzer output:", result)

Häufige Probleme, die Sie überprüfen sollten:

  • Übermäßige Tokenisierung: Fachbegriffe werden falsch aufgeteilt

  • Unter-Tokenisierung: Phrasen werden nicht ordnungsgemäß getrennt

  • Fehlende Token: Wichtige Begriffe werden herausgefiltert

Ausführliche Informationen zur Verwendung finden Sie unter ` run_analyzer`.

Dieser Abschnitt enthält empfohlene Konfigurationen für Tokenizer und Filter für gängige Anwendungsfälle bei der Arbeit mit Analysatoren in Milvus. Wählen Sie die Kombination, die am besten zu Ihrem Inhaltstyp und Ihren Suchanforderungen passt.

Bevor Sie einen Analysator auf Ihre Sammlung anwenden, empfehlen wir Ihnen, run_analyzer , um die Leistung der Textanalyse zu testen und zu überprüfen.

Sprachen mit Akzenten (Französisch, Spanisch, Deutsch usw.)

Verwenden Sie einen „ standard “-Tokenizer mit Umwandlung in Kleinbuchstaben, sprachspezifischem Stemming und Stopwort-Entfernung. Diese Konfiguration funktioniert auch für andere europäische Sprachen, indem Sie die Parameter „ language “ und „ stop_words “ anpassen.

# French example
analyzer_params = {
    "tokenizer": "standard",
    "filter": [
        "lowercase", 
        "asciifolding",  # Handle accent marks
        {
            "type": "stemmer",
            "language": "french"
        },
        {
            "type": "stop",
            "stop_words": ["_french_"]
        }
    ]
}

# For other languages, modify the language parameter:
# "language": "spanish" for Spanish
# "language": "german" for German
# "stop_words": ["_spanish_"] or ["_german_"] accordingly

Englische Inhalte

Für die Verarbeitung englischer Texte mit umfassender Filterung. Sie können auch den integrierten english Analysator verwenden:

analyzer_params = {
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        {
            "type": "stemmer",
            "language": "english"
        },
        {
            "type": "stop",
            "stop_words": ["_english_"]
        }
    ]
}

# Equivalent built-in shortcut:
analyzer_params = {
    "type": "english"
}

Chinesische Inhalte

Verwenden Sie den Tokenizer „ jieba “ und wenden Sie einen Zeichenfilter an, um nur chinesische Schriftzeichen, lateinische Buchstaben und Ziffern beizubehalten.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": ["cnalphanumonly"]
}

# Equivalent built-in shortcut:
analyzer_params = {
    "type": "chinese"
}

Bei vereinfachtem Chinesisch entfernt „ cnalphanumonly “ alle Token mit Ausnahme von chinesischen Schriftzeichen, alphanumerischem Text und Ziffern. Dadurch wird verhindert, dass Satzzeichen die Suchqualität beeinträchtigen.

Falls Nutzer chinesischen Text durch Eingabe von Pinyin suchen können, verwenden Sie einen benutzerdefinierten Analysator mit dem Tokenizer „ jieba “ und dem pinyin Filter anstelle des integrierten „ chinese “-Analysators.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": ["pinyin"]
}

Japanische Inhalte

Verwenden Sie den Tokenizer „ lindera “ mit japanischem Wörterbuch und Filtern, um Satzzeichen zu entfernen und die Tokenlänge zu steuern:

analyzer_params = {
    "tokenizer": {
        "type": "lindera",
        "dict": "ipadic"  # Options: ipadic, ipadic-neologd, unidic
    },
    "filter": [
        "removepunct",  # Remove standalone punctuation
        {
            "type": "length",
            "min": 1,
            "max": 20
        }
    ]
}

Koreanische Inhalte

Ähnlich wie bei Japanisch verwenden Sie den „ lindera “-Tokenizer mit dem koreanischen Wörterbuch:

analyzer_params = {
    "tokenizer": {
        "type": "lindera",
        "dict": "ko-dic"
    },
    "filter": [
        "removepunct",
        {
            "type": "length",
            "min": 1,
            "max": 20
        }
    ]
}

Gemischte oder mehrsprachige Inhalte

Wenn Sie mit Inhalten arbeiten, die mehrere Sprachen umfassen oder unvorhersehbare Schriftsysteme verwenden, beginnen Sie mit dem „ icu “-Analysator. Dieser Unicode-fähige Analysator verarbeitet gemischte Schriftsysteme und Symbole effektiv.

Grundlegende mehrsprachige Konfiguration (ohne Stemming):

analyzer_params = {
    "tokenizer": "icu",
    "filter": ["lowercase", "asciifolding"]
}

Erweiterte mehrsprachige Verarbeitung:

Für eine bessere Kontrolle über das Token-Verhalten in verschiedenen Sprachen:

  • Verwenden Sie eine Konfiguration für mehrsprachige Analysatoren. Weitere Informationen finden Sie unter „Mehrsprachige Analysatoren“.

  • Implementieren Sie einen Sprachidentifikator in Ihren Inhalten. Weitere Informationen finden Sie unter „Sprachidentifikator“.

Integration mit Funktionen zur Textsuche

Nachdem Sie Ihren Analysator ausgewählt haben, können Sie ihn in die von Milvus bereitgestellten Funktionen zur Textsuche integrieren.

  • Volltextsuche

    Analysatoren wirken sich durch die Erzeugung spärlicher Vektoren direkt auf die BM25-basierte Volltextsuche aus. Verwenden Sie denselben Analysator sowohl für die Indizierung als auch für die Abfrage, um eine konsistente Tokenisierung sicherzustellen. Sprachspezifische Analysatoren liefern im Allgemeinen bessere BM25-Bewertungen als generische. Details zur Implementierung finden Sie unter „Volltextsuche“.

  • Textabgleich

    Textabgleich-Operationen führen auf der Grundlage der Ausgabe Ihres Analysators einen exakten Token-Abgleich zwischen Abfragen und indiziertem Inhalt durch. Details zur Implementierung finden Sie unter „Textabgleich“.

  • Phrasenabgleich

    Der Phrasenabgleich erfordert eine konsistente Tokenisierung über mehrwortige Ausdrücke hinweg, um Phrasengrenzen und Bedeutung zu bewahren. Details zur Implementierung finden Sie unter „Phrasenabgleich“.