2014-10-16 61 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();