2016-07-26 58 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

任何想法S'

+0

什麼elasticsearch一個版本你運行嗎?檢查所需的elasticsearch數據庫版本。如果我是對的,他們依賴於舊的彈性1.5.4。如果您運行的是彈性2.x,則不起作用。如果你升級到spring-data elasticsearch的2.x版本,它會好很多。使用彈性5,客戶端對使用的服務器版本的影響要小得多。但有一個好看的是明智的。 –

+0

@JettroCoenradie現在只是檢查版本,謝謝 – wired00

+0

嗯所以與Jhipster發電機,並由於某種原因它來包裝1.5.2和spring-data-elasticsearch 1.3.4 ...:/ – wired00

回答

3

你有兩個問題:

field查詢不存在了,你需要或者matchterm使用(錯誤消息說「不爲[現場]註冊查詢」)

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

B.你需要逃避查詢裏面的雙引號(因爲你可以看到你的IDE是紅線查詢)

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

確認,我剛剛根據您以前給出的評論中的鏈接,大力幫助,現在就看看它 – wired00

+0

是的,這是一個需要修復的文檔錯誤。 – Val

+0

確定現在用'term'代替字段完美工作並逃脫了雙引號歡呼傢伙 – wired00