2016-07-26 10 views
1

は、誰かが、私はここに例が続いてきた、これに光を当てることができます:無効なカスタム@query構文春弾性検索

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

...しかし、構文はおそらく動作することはできません。下の画像に似た構文エラーが発生します。

enter image description here

事:私は引用符をエスケープしようとしましたが、結果elasticクエリは以下の例外では動作しません

enter image description here

(これはコンパイルされません言うまでもなく)他の例でも同様のフォーマットを使用していますが、もちろん動作しません。 Spring Data elasticsearch @Query annotation for nested objects

+0

どのバージョン(あなたのIDEが赤いライニングクエリで見ることができるように)あなたのクエリ内の二重引用符をエスケープする必要がありますあなたは走っていますか? elasticsearchデータライブラリの必要なバージョンを確認してください。私が正しいとすれば、彼らは古い1.5.4の弾性に頼っている。 elastic 2.xを実行している場合、動作しません。 spring-data elasticsearchの2.xバージョンにアップグレードすると、より良い結果が得られます。弾性5では、クライアントは使用されているバージョンのサーバーにあまり影響を与えません。しかし、見栄えが良いのは賢明です。 –

+0

@JettroCoenradieちょうど今バージョンをチェックしています – wired00

+0

ええとJhipsterジェネレータで何らかの理由でそれが1.5.2とspring-data-elasticsearch 1.3.4 ...とパッケージ化されています:/ – wired00

答えて

3

あなたは二つの問題があります。

A. fieldクエリはもう存在しない場合、あなたはmatchtermのいずれかを使用する必要があります(エラーメッセージは、「[フィールド]のために登録されたクエリを」言わない)

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

B.あなたがelasticsearch aの

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

ACK、私はちょうどあなたが以前に与えたコメントのリンクに基づいてその実現に来ていた、今すぐそれを見て、 – wired00

+0

はいそれは修正が必要なドキュメントのバグです。 – Val

+0

OKフィールドとエスケープされた二重引用符の代わりに 'term'で完璧な作業ができますguers guys – wired00