在Java Elasticsearch SearchRequestBuilder中找不到execute()方法



我正在使用框架Dropwizard在Java中开发REST web服务。有些资源只是在Elasticsearch索引中搜索数据。在那里我遇到了一个奇怪的问题。

org.elasticsearch.action.search使用SearchRequestBuilder时,我无法执行搜索请求。这是因为execute()方法不"可用",因为NetBeans(8.0.2)通过告诉我无法找到符号。请看下面的例子:

SearchResponse response = client.prepareSearch("books")
           .setTypes("book")
           .setQuery(QueryBuilders.termQuery("year", 2015)) 
           .setFrom(0).setSize(60)
           .execute() // !!
           .actionGet();

NetBean的消息:

找不到符号
  symbol: method execute()
  location: class SearchRequestBuilder

我可以在Elasticsearch上执行索引client.prepareUpdate()并获得client.prepareGet()请求(客户端类型为org.elasticsearch.client.Client),因此它被正确配置和设置,并且依赖项工作正常。然而,当涉及到上述搜索请求时,我无法执行请求,因为NetBeans显然无法解决execute()方法。

我从来没有经历过这样的行为,所以我很无知。有什么想法是错误的或建议我如何执行Elasticsearch不同的搜索查询?

我使用dropwizard-core-0.8.1, dropwizard-elasticsearch-0.8.0-1, elasticsearch-1.6.0.

原来是NetBeans编辑器的问题。不知怎的,编辑器没有得到SearchRequestBuilder的类/包和Javadoc的正确引用,因此使项目无法正确构建。

解决方案:删除NetBeans缓存

您可以通过NetBeans> About NetBeans查看参数缓存目录来查看NetBeans保存缓存的位置。只需重命名或删除该目录并重新启动NetBeans。编辑器现在获得了execute()的正确方法定义。

相关内容

  • 没有找到相关文章

最新更新