Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在elasticsearch中使用java客户端发出原始查询?_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

如何在elasticsearch中使用java客户端发出原始查询?

如何在elasticsearch中使用java客户端发出原始查询?,java,elasticsearch,Java,elasticsearch,我在上找到了一篇关于如何从ElasticSearch获取随机记录的帖子 我已将此文件存储为资源,并按如下方式加载它 String query = ResourceUtil.getResource("path/to/json/query"); SearchRequestBuilder srb = getSafeClient() .prepareSearch("myindex") .setTypes("mytype") .setQuery(query); _logger.de

我在上找到了一篇关于如何从ElasticSearch获取随机记录的帖子

我已将此文件存储为资源,并按如下方式加载它

String query = ResourceUtil.getResource("path/to/json/query");
SearchRequestBuilder srb = getSafeClient()
    .prepareSearch("myindex")
    .setTypes("mytype")
    .setQuery(query);
_logger.debug("search = {}", srb.toString());
search = {,
  "query": 
    "function_score": {
      "query": {
        "match_all": {}
      },
      "random_score": {}
    }
}
QueryParsingException[[myindex] [_na] query malformed, must start with start_object
然而,我总是遇到解析失败。当我记录SearchRequestBuilder时,我注意到一个逗号的前缀如下所示

String query = ResourceUtil.getResource("path/to/json/query");
SearchRequestBuilder srb = getSafeClient()
    .prepareSearch("myindex")
    .setTypes("mytype")
    .setQuery(query);
_logger.debug("search = {}", srb.toString());
search = {,
  "query": 
    "function_score": {
      "query": {
        "match_all": {}
      },
      "random_score": {}
    }
}
QueryParsingException[[myindex] [_na] query malformed, must start with start_object
我看到的QueryParsingException如下所示

String query = ResourceUtil.getResource("path/to/json/query");
SearchRequestBuilder srb = getSafeClient()
    .prepareSearch("myindex")
    .setTypes("mytype")
    .setQuery(query);
_logger.debug("search = {}", srb.toString());
search = {,
  "query": 
    "function_score": {
      "query": {
        "match_all": {}
      },
      "random_score": {}
    }
}
QueryParsingException[[myindex] [_na] query malformed, must start with start_object

你知道我做错了什么吗?是否可以纯粹使用Java客户端API来表示随机查询?我正在使用ElasticSearch v1.1。

不过,我修改并找到了如何以编程方式表达查询。如果有人感兴趣,代码片段如下

FunctionScoreQueryBuilder fsqb = new FunctionScoreQueryBuilder(QueryBuilders.matchAllQuery());
fsqb.add(ScoreFunctionBuilders.randomFunction((new Date()).getTime()));
SearchRequestBuilder srb = getSafeClient()
 .prepareSearch("myindex")
 .setTypes("mytype")
 .setQuery(fsqb);