Wie finde ich das Ergebnis von elasticsearch, das einen query_string analysiert?

8

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.

    
Hans-Peter Störr 23.08.2013, 10:23
quelle

1 Antwort

5

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:

  • (und) Zeichen beginnen und enden bool query
  • + Präfix bedeutet Klausel, die in must ist
  • - Präfix bedeutet Klausel, die in must_not ist
  • kein Präfix bedeutet, dass es in should (mit default_operator gleich OR )
  • steht

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.

    
slawek 16.07.2015 17:10
quelle

Tags und Links