Gibt es eine Möglichkeit, über die elasticsearch API herauszufinden, wie ein Query String Abfrage wird tatsächlich analysiert? Sie können das manuell tun, indem Sie sich die Lucene-Abfragesyntax ansehen, aber es wäre wirklich nett, wenn Sie könnten Sehen Sie sich eine Darstellung der tatsächlichen Ergebnisse des Parsers an.
Wie Javanna in Kommentaren erwähnt hat, gibt es _validate . Folgendes funktioniert bei meinem lokalen Elastic (Version 1.6):
%Vor% pl
ist der Name des Indexes in meinem Cluster. Verschiedene Indizes können verschiedene Analysatoren haben, deshalb wird die Abfragevalidierung in einem Indexbereich ausgeführt.
Das Ergebnis der obigen Locke folgt:
%Vor% Ich habe einen OR
Kleinbuchstaben mit Absicht gemacht und wie Sie in der Erklärung sehen können, wird es als ein Token interpretiert und nicht als ein Operator.
Zur Interpretation der Erklärung. Das Format ist vergleichbar mit +-
Operatoren von query string
query:
bool query
must
ist
must_not
ist
should
(mit default_operator
gleich OR
) Also oben wird wie folgt sein:
%Vor% Ich habe _validate
api ziemlich oft benutzt, um komplexe filtered
-Abfragen mit vielen Bedingungen zu debuggen. Es ist besonders nützlich, wenn Sie überprüfen möchten, wie Analyzer-Token-Eingabe wie eine URL oder wenn ein Filter zwischengespeichert wird.
Es gibt auch einen großartigen Parameter rewrite
, den ich bis jetzt nicht kannte, was die Erklärung noch detaillierter macht und die tatsächliche Lucene-Abfrage zeigt, die ausgeführt wird.
Tags und Links elasticsearch lucene