在Java ElasticSearchRequestBuilder中找不到方法execute()
我正在使用framework Dropwizard在Java中开发REST web服务。一些资源只需在Elasticsearch索引中搜索数据。这就是我遇到一个奇怪问题的地方 从在Java ElasticSearchRequestBuilder中找不到方法execute(),java,netbeans,
elasticsearch,dropwizard,Java,Netbeans,
elasticsearch,Dropwizard,我正在使用framework Dropwizard在Java中开发REST web服务。一些资源只需在Elasticsearch索引中搜索数据。这就是我遇到一个奇怪问题的地方 从org.elasticsearch.action.search使用SearchRequestBuilder时,我无法执行搜索请求。这是因为execute()方法不“可用”,正如NetBeans(8.0.2)通过找不到符号告诉我的那样。请参见此示例: SearchResponse response = client.pre
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的消息:
找不到符号
符号:方法execute()
位置:类SearchRequestBuilder
我可以在Elasticsearch上执行indexclient.prepareUpdate()
和getclient.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并查找参数cache目录,您可以看到NetBeans将缓存保存在何处。只需重命名或删除此目录并重新启动NetBeans。编辑器现在为execute()
获取正确的方法定义,您如何导入org.elasticsearch.action.search
??execute()是属于ActionRequestBuilder的方法,它位于包org.elasticsearch.action
中。我的直觉是,如果您正确地整理了这个导入,您将不会遇到麻烦。我知道继承和包。为了确保我通过import org.elasticsearch.action.*
导入了整个包。这没用。对我来说,这似乎是一个NetBeans问题,因为我不知道如何以不同的方式导入所需的类/包。