2016-07-26 3 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에 의존합니다. 탄성 2.x를 실행 중이면 작동하지 않습니다. spring-data elasticsearch의 2.x 버전으로 업그레이드하면 더 나아질 것입니다. 탄성 5로 클라이언트는 서버의 사용 된 버전에 훨씬 적은 영향을 미칩니다. 그러나 좋은 모습을 보이는 것이 현명합니다. –

+0

@JettroCoenradie 그냥 버전을 확인해 주셔서 감사합니다 – wired00

+0

음 Jhipster generator를 사용하여 1.5.2 및 spring-data-elasticsearch 1.3.4와 함께 제공되는 이유가 있습니다 :/ – wired00

답변

3

당신은 두 가지 문제가 있습니다

field 쿼리는 더 이상, 당신도 match 또는 term 사용할 필요가 존재하지 않습니다 (오류 메시지가 말한다 "[필드]로 등록 된 쿼리 없다")

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

B. 당신은 elasticsearch A의

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

ACK, 나는 단지 당신이 이전에 주신 의견에있는 링크를 기반으로 그 실현에 도달했습니다. 큰 도움이되었습니다. 지금 바로보고 있습니다. – wired00

+0

예 이것은 수정해야 할 문서 버그입니다. – Val

+0

이제는 필드 대신 '용어'로 완벽하게 작동하며 큰 따옴표를 이스케이프 처리하면 사람들이 환호합니다 – wired00