Parameter für die Neptune-Volltextsuche - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Parameter für die Neptune-Volltextsuche

Amazon Neptune verwendet die folgenden Parameter für Volltext-OpenSearch-Abfragen in Gremlin und SPARQL:

  • queryType – (Erforderlich) Der Typ der OpenSearch-Abfrage. (Eine Liste der Abfragetypen finden Sie in der OpenSearch-Dokumentation). Neptune unterstützt die folgenden OpenSearch-Abfragetypen:

    • simple_query_string – Gibt Dokumente zurück, die auf einer bereitgestellten Abfragezeichenfolge basieren, wobei ein Parser mit einer eingeschränkten, aber fehlertoleranten Lucene-Syntax verwendet wird. Dies ist der Standardabfragetyp.

      Diese Abfrage verwendet eine einfache Syntax, mit der die bereitgestellte Abfragezeichenfolge auf Grundlage spezieller Operatoren analysiert und in Begriffe aufgeteilt wird. Die Abfrage analysiert dann jeden Begriff unabhängig von einander, bevor übereinstimmende Dokumente zurückgegeben werden.

      Obwohl die Syntax eingeschränkter ist als die query_string-Abfrage, gibt die simple_query_string-Abfrage keine Fehler für ungültige Syntax zurück. Stattdessen werden alle ungültigen Teile der Abfragezeichenfolge ignoriert.

    • match – die match-Abfrage ist die Standardabfrage für das Durchführen einer Volltextsuche, einschließlich Optionen für Fuzzyübereinstimmungen.

    • prefix – Gibt Dokumente zurück, die ein bestimmtes Präfix in einem angegebenen Feld enthalten.

    • fuzzy – Gibt Dokumente zurück, die dem Suchbegriff ähnelnde Begriffe enthalten, wie sie anhand einer Levenshtein-Bearbeitungsdistanz gemessen werden.

      Eine Bearbeitungsdistanz ist die erforderliche Anzahl der Änderungen einzelner Zeichen, damit ein Begriff in einen anderen umgewandelt werden kann. Diese Änderungen können Folgendes umfassen:

      • Ändern eines Zeichens (Maus zu Haus).

      • Entfernen eines Zeichens (Reis zu Eis).

      • Einfügen eines Zeichens (Bauch zu Brauch).

      • Transponieren von zwei benachbarten Zeichen (Beine zu Biene).

      Für die Suche nach ähnlichen Begriffen erstellt die Fuzzyabfrage einen Satz aller möglichen Variationen und Erweiterungen des Suchbegriffs innerhalb einer angegebenen Bearbeitungsdistanz und gibt dann exakte Übereinstimmungen für jede dieser Varianten zurück.

    • term – Gibt Dokumente zurück, die eine exakte Übereinstimmung eines bestimmten Begriffs in einem der angegebenen Felder enthalten.

      Mit der term-Abfrage können Sie nach Dokumenten suchen, die auf einem genauen Wert basieren, z, B. einem Preis, einer Produkt-ID oder einem Benutzernamen.

      Warnung

      Vermeiden Sie die Verwendung der Begriffsabfrage für Textfelder. Standardmäßig ändert Open Search die Werte von Textfeldern im Rahmen der Analyse, was das Suchen nach exakten Übereinstimmungen für Textfeldwerte erschwert.

      Verwenden Sie stattdessen die Übereinstimmungsabfrage, um nach Textfeldwerten zu suchen.

    • query_string – Gibt Dokumente zurück, die auf einer angegebenen Abfragezeichenfolge basieren, wobei ein Parser mit einer strengen Syntax (Lucene-Syntax) verwendet wird.

      Diese Abfrage verwendet eine Syntax, um die bereitgestellte Abfragezeichenfolge basierend auf Operatoren wie AND oder NOT zu analysieren und zu trennen. Die Abfrage analysiert dann jeden getrennten Text unabhängig voneinander, bevor übereinstimmende Dokumente zurückgegeben werden.

      Mit der query_string-Abfrage können Sie eine komplexe Suche erstellen, die Platzhalterzeichen, Suchen in mehreren Feldern usw. enthält. Obwohl diese Abfrage vielseitig ist, ist Sie strikt und gibt bei einer ungültigen Syntax in der Abfragezeichenfolge einen Fehler.

      Warnung

      Da bei einer ungültigen Syntax ein Fehler zurückgegeben wird, empfiehlt es sich nicht, die query_string-Abfrage für Suchfelder zu verwenden.

      Wenn Sie keine Abfragesyntax unterstützen müssen, sollten Sie die match-Abfrage verwenden. Wenn Sie die Funktionen einer Abfragesyntax benötigen, verwenden Sie die simple_query_string-Abfrage. Diese ist weniger strikt.

  • field – Das Feld in OpenSearch, für das die Suche ausgeführt werden soll. Dies kann nur weggelassen werden, wenn es queryType gestattet (wie z. B. bei simple_query_string und query_string). In diesem Fall wird die Suche für alle Felder durchgeführt. In Gremlin ist dies implizit.

    Es können mehrere Felder können angegeben werden, sofern die Abfrage dies zulässt, wie z. B. simple_query_string und query_string.

  • query – (Erforderlich) Die Abfrage, die für OpenSearch ausgeführt werden soll. Der Inhalt dieses Feldes kann je nach queryType unterschiedlich sein. Verschiedene queryTypes akzeptieren unterschiedliche Syntaxregeln, wie zum Beispiel Regexp. In Gremlin ist query implizit.

  • maxResults – Die maximale Anzahl der zurückzugebenden Ergebnisse. Der Standard ist die OpenSearch-Einstellung für index.max_result_window, deren Standardwert wiederum 10 000 ist. Der maxResults-Parameter kann eine beliebige Zahl angeben, die niedriger ist.

    Wichtig

    Wenn Sie für maxResults einen Wert festlegen, der höher als der OpenSearch-Wert für index.max_result_window ist und versuchen, mehr als index.max_result_window Ergebnisse abzurufen, schlägt OpenSearch mit dem Fehler Result window is too large fehl. Allerdings geht Neptune damit vorsichtig um, ohne den Fehler zu propagieren. Beachten Sie dies, wenn Sie versuchen, mehr als index.max_result_window Ergebnisse abzurufen.

  • minScore – Der Mindestwert, den ein Suchergebnis für die Rückgabe haben muss. Eine Erläuterung der Ergebnisbewertung finden Sie in der Relevanzdokumentation zu OpenSearch.

  • batchSize – Neptune ruft immer Daten in Stapeln ab (die Standardstapelgröße ist 100).   mit diesem Parameter können Sie die Leistung optimieren. Die Stapelgröße darf die Opensearch-Einstellung für index.max_result_window nicht überschreiten. Diese liegt standardmäßig bei 10 000.

  • sortBy – Ein optionaler Parameter, mit dem Sie die von OpenSearch zurückgegebenen Ergebnisse nach einem der folgenden Kriterien sortieren können:

    • Ein bestimmtes Zeichenfolgenfeld im Dokument –  

      In einer SPARQL-Abfrage können Sie beispielsweise Folgendes angeben:

      neptune-fts:config neptune-fts:sortBy foaf:name .

      In einer ähnlichen Gremlin-Abfrage können Sie Folgendes angeben:

      .withSideEffect('Neptune#fts.sortBy', 'name')
    • Ein bestimmtes Nicht-Zeichenfolgenfeld (long, double usw.) –  

      Beachten Sie, dass Sie beim Sortieren nach einem Nicht-Zeichenfolgenfeld .value an den Feldnamen anhängen müssen, um es von einem Zeichenfolgenfeld zu unterscheiden.

      In einer SPARQL-Abfrage können Sie beispielsweise Folgendes angeben:

      neptune-fts:config neptune-fts:sortBy foaf:name.value .

      In einer ähnlichen Gremlin-Abfrage können Sie Folgendes angeben:

      .withSideEffect('Neptune#fts.sortBy', 'name.value')
    • score – Sortieren nach Übereinstimmungsergebnis (Standardeinstellung).

      Wenn der Parameter sortOrder, aber nicht sortBy vorhanden ist, werden die Ergebnisse in der durch sortOrder angegebenen Reihenfolge nach score sortiert.

    • id – Sortieren nach ID, d. h. SPARQL-Subject-URI oder Gremlin-Vertex oder Edge-ID.

      In einer SPARQL-Abfrage können Sie beispielsweise Folgendes angeben:

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_id' .

      In einer ähnlichen Gremlin-Abfrage können Sie Folgendes angeben:

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_id')
    • label – Sortieren nach Etikett.

      In einer SPARQL-Abfrage können Sie beispielsweise Folgendes angeben:

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_type' .

      In einer ähnlichen Gremlin-Abfrage können Sie Folgendes angeben:

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_type')
    • doc_type – Sortieren nach Dokumenttyp (SPARQL oder Gremlin).

      In einer SPARQL-Abfrage können Sie beispielsweise Folgendes angeben:

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.document_type' .

      In einer ähnlichen Gremlin-Abfrage können Sie Folgendes angeben:

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.document_type')

    Standardmäßig werden OpenSearch-Ergebnisse nicht sortiert und ihre Reihenfolge ist nicht-deterministisch. Dies bedeutet, dass dieselbe Abfrage jedes Mal Elemente in einer anderen Reihenfolge zurückgibt, wenn sie ausgeführt wird. Wenn die Ergebnismenge größer als max_result_window ist, kann daher jedes Mal eine ganz andere Teilmenge der Gesamtergebnisse zurückgegeben werden, wenn eine Abfrage ausgeführt wird. Durch die Sortierung können Sie jedoch die Ergebnisse verschiedener Durchläufe direkt vergleichbar machen.

    Wenn sortOrder von keinem sortBy-Parameter begleitet wird, wird die absteigende (DESC) Reihenfolge vom größten zum geringsten verwendet.

  • sortOrder – Ein optionaler Parameter, mit dem Sie angeben können, ob OpenSearch-Ergebnisse vom geringsten zum größten oder vom größten zum geringsten sortiert werden (Standardwert):

    • ASC – Aufsteigende Reihenfolge, vom geringsten zum größten.

    • DESC – Absteigende Reihenfolge, vom größten zum geringsten.

      Dies ist der Standardwert, der verwendet wird, wenn der Parameter sortBy vorhanden ist, aber keine sortOrder angegeben wird.

    Wenn weder sortBy noch sortOrder vorhanden ist, werden OpenSearch-Ergebnisse standardmäßig nicht sortiert.