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