2014-10-16 58 views
0

是否有一种方法在elasticsearch中使用JAVA API来获取为给定查询返回的文档的ID。Elasticsearch获取仅文件ID

SearchResponse sr = esClient.prepareSearch(index).setSize(resultSize).setScroll(new TimeValue(10000)).setQuery(fqb).setFetchSource(false).get(); 

,但我得到空命中(sr.getHits().hits[].length == 0)althouh返回的总命中数为0(sr.getHits().getTotalHits == 2)。我明白没有什么是由elasticsearch返回的,因为我将源代码设置为false,但是ID应该以某种方式可用。我目前的解决办法是:

SearchResponse sr = esClient.prepareSearch(index).setSize(resultSize).setScroll(new TimeValue(10000)).setQuery(fqb).srb.setFetchSource("_id", null).get(); 

但是我认为从源头获取_id领域,速度,我想如果可能避免这种情况。

感谢, 伊利亚·

回答

0

添加.addField("_id")到搜索

SearchResponse sr = esClient.prepareSearch(index) 
       .setSize(resultSize) 
       .setScroll(new TimeValue(10000)) 
       .setQuery(fqb) 
       .setFetchSource(false) 
       .addField("_id") 
       .get();