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 diesimple_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 diesimple_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 esqueryType
gestattet (wie z. B. beisimple_query_string
undquery_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
undquery_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 BeispielRegexp
. In Gremlin istquery
implizit.-
maxResults
– Die maximale Anzahl der zurückzugebenden Ergebnisse. Der Standard ist die OpenSearch-Einstellung fürindex.max_result_window
, deren Standardwert wiederum 10 000 ist. DermaxResults
-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ürindex.max_result_window
ist und versuchen, mehr alsindex.max_result_window
Ergebnisse abzurufen, schlägt OpenSearch mit dem FehlerResult window is too large
fehl. Allerdings geht Neptune damit vorsichtig um, ohne den Fehler zu propagieren. Beachten Sie dies, wenn Sie versuchen, mehr alsindex.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ürindex.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 nichtsortBy
vorhanden ist, werden die Ergebnisse in der durchsortOrder
angegebenen Reihenfolge nachscore
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 keinemsortBy
-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 keinesortOrder
angegeben wird.
Wenn weder
sortBy
nochsortOrder
vorhanden ist, werden OpenSearch-Ergebnisse standardmäßig nicht sortiert.