【发布时间】:2014-06-11 08:17:00
【问题描述】:
我在Random order & pagination Elasticsearch 找到了一篇关于如何从 ElasticSearch 获取随机记录的 SO 帖子。
curl -XGET 'localhost:9200/_search' -d '{
"query": {
"function_score": {
"query": {
"match_all": {}
},
"random_score": {}
}
}
}'
我已将此文件存储为资源并按如下方式加载。
String query = ResourceUtil.getResource("path/to/json/query");
SearchRequestBuilder srb = getSafeClient()
.prepareSearch("myindex")
.setTypes("mytype")
.setQuery(query);
_logger.debug("search = {}", srb.toString());
但是,我不断遇到解析失败。当我记录 SearchRequestBuilder 时,我注意到逗号不断被添加如下。
search = {,
"query":
"function_score": {
"query": {
"match_all": {}
},
"random_score": {}
}
}
我看到的 QueryParsingException 如下所示。
QueryParsingException[[myindex] [_na] query malformed, must start with start_object
关于我做错了什么有什么想法吗?是否可以纯粹使用 Java 客户端 API 来表达随机查询?我正在使用 ElasticSearch v1.1。
【问题讨论】:
标签: java elasticsearch