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.
Amazon Neptune verwendet die folgenden Parameter für die Angabe von OpenSearch Volltextabfragen in Gremlin und SPARQL:
-
queryType
— (Erforderlich) Der Abfragetyp. OpenSearch (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. OpenSearch Ändert standardmäßig die Werte von Textfeldern im Rahmen seiner Analyse, was es schwierig machen kann, exakte Übereinstimmungen für Textfeldwerte zu finden.
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, OpenSearch in dem 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, gegen die ausgeführt werden soll OpenSearch. 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. Die Standardeinstellung ist dieindex.max_result_window
OpenSearch Einstellung, die selbst standardmäßig 10.000 ist. DermaxResults
-Parameter kann eine beliebige Zahl angeben, die niedriger ist.Wichtig
Wenn Sie einen höheren Wert als den OpenSearch
index.max_result_window
Wert festlegenmaxResults
und versuchen, mehr alsindex.max_result_window
Ergebnisse abzurufen, OpenSearch schlägt dies mit einemResult window is too large
Fehler 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 Dokumentation zur OpenSearch Relevanz. batchSize
– Neptune ruft immer Daten in Stapeln ab (die Standardstapelgröße ist 100). Sie können mit diesem Parameter die Leistung optimieren. Die Batchgröße darf dieindex.max_result_window
OpenSearch Einstellung nicht überschreiten, die standardmäßig auf 10.000 eingestellt ist.-
sortBy
— Ein optionaler Parameter, mit dem Sie die zurückgegebenen OpenSearch Ergebnisse nach einer 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 sind die OpenSearch Ergebnisse nicht sortiert und ihre Reihenfolge ist nicht deterministisch, was bedeutet, dass dieselbe Abfrage bei jeder Ausführung Elemente in einer anderen Reihenfolge zurückgeben kann. 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 die OpenSearch Ergebnisse vom kleinsten zum größten oder vom größten zum kleinsten sortiert werden (Standardeinstellung):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
sortBy
weder noch vorhandensortOrder
ist, werden die OpenSearch Ergebnisse standardmäßig nicht sortiert.