使用Java API将_timestamp添加到Elasticsearch结果

时间:2015-10-30 15:14:44

标签: java elasticsearch

我有一个Elasticsearch索引,每个记录都填充_timestamp。使用Marvel或curl我可以在结果的“fields”部分中获得_timestamp,例如:

GET index/type/_search?fields=_timestamp,_source
{
   "took": 11,
   "timed_out": false,
   "_shards": {
      "total": 3,
      "successful": 3,
      "failed": 0
   },
   "hits": {
      "total": 116888,
      "max_score": 1,
      "hits": [
         {
            "_index": "index",
            "_type": "type",
            "_id": "mXJdWqSLSfykbMtChiCRjA",
            "_score": 1,
            "_source": {
               "results": "example",
            },
            "fields": {
               "_timestamp": 1443618319514
            }
         },...

然而,当使用Java API进行搜索时,我无法返回_timestamp

SearchRequestBuilder builder= client.prepareSearch(index)
            .addFacet(facet)
            .setFrom(start)
            .setSize(limit);
SearchResponse response = builder.execute().actionGet();

有人能告诉我如何申请_timestamp吗?

1 个答案:

答案 0 :(得分:1)

您只需使用setFields()方法,如下所示:

SearchRequestBuilder builder= client.prepareSearch(index)
            .setType(type)
            .addFacet(facet)
            .setFields("_timestamp")          <--- add this line
            .setFrom(start)
            .setSize(limit);
SearchResponse response = builder.execute().actionGet();