2016-07-26 42 views
1

jemand Licht in diese kann, habe ich das Beispiel hier folgt:Ungültige benutzerdefinierte @Query Syntax Frühling Elasticsearch

http://docs.spring.io/spring-data/elasticsearch/docs/1.3.4.RELEASE/reference/html/#elasticsearch.query-methods.at-query

... Allerdings kann die Syntax möglicherweise nicht funktionieren. Es führt zu Syntaxfehlern ähnlich wie in der Abbildung unten. (Es erübrigt sich zu sagen, dass dies nicht kompiliert)

enter image description here

ich versucht habe, die Anführungszeichen zu entkommen, aber die resultierende elastic Abfrage funktioniert nicht mit folgenden Ausnahme:

enter image description here

Die Sache ist, andere Beispiele, die ich gefunden habe, verwenden das ähnliche Format und natürlich funktionieren nicht: Spring Data elasticsearch @Query annotation for nested objects

Irgendeine Idee s?

+0

, welche Version von Elasticsearch einer Bist du am Laufen? Überprüfen Sie die erforderliche Version der elasticsearch-Datenbibliothek. Wenn ich recht habe, sind sie auf das elastische 1.5.4 angewiesen, das alt ist. Wenn Sie Elastic 2.x ausführen, wird es nicht funktionieren. Wenn Sie auf die 2.x Version von spring-data elasticsearch upgraden, wird es viel besser. Mit Elastic 5 wird der Client viel weniger Auswirkungen auf die verwendete Version des Servers haben. Aber es ist klug, einen guten Blick zu haben. –

+0

@JettroCoenradie nur Versionen jetzt überprüfen Dank – wired00

+0

Hmm Also mit Jipster Generator, und aus irgendeinem Grund kommt es mit 1.5.2 verpackt und Feder-Data-elasticsearch 1.3.4 ...:/ – wired00

Antwort

3

Sie haben zwei Probleme:

A. Die field Abfrage existiert nicht mehr, müssen Sie verwenden entweder match oder term (die Fehlermeldung lautet „keine Abfrage für [field] registriert“)

{"bool": {"must": {"term": {"name": "?0"}}}} 

B. Sie müssen die doppelten Anführungszeichen in Ihrer Abfrage zu entkommen (wie Sie Ihre IDE sind rot-Futter Ihrer Anfrage sehen)

@Query("{\"bool\": {\"must\": {\"term\": {\"name\": \"?0\"}}}}") 
+0

ACK, ich kam gerade zu dieser Erkenntnis basierend auf dem Link in den Kommentar, den Sie zuvor gab, große Hilfe, nur in die Suche jetzt – wired00

+0

Ja Das ist ein Dokumentationsfehler, der behoben werden muss. – Val

+0

ok funktioniert perfekt jetzt mit 'term' statt Feld und entkam doppelte Anführungszeichen Prost Jungs – wired00