2017-02-11 1 views
0

몇 가지 필드가있는 문서가 있는데 특정 시간 이후에 삽입되는 문서의 수를 찾고 싶습니다. 범위 쿼리를 사용하여 수행 할 수 있지만 모든 문서 필드 중에서 타임 스탬프 필드 만 표시되도록해야합니다. 내가 일치 된 문서의 타임 스탬프를 얻을 didnt는 출력이 오히려 난 내 쿼리와 일치하지 않는 문서를 가지고보고 집계에서 _source 필드를 사용할 수 있습니까?

나는 다음 쿼리

{ 
     "_source": [ 
     "fields.Timestamp" 
     ], 
     "aggs": { 
     "last_5_mins": { 
      "filter": { 
      "range": { 
       "fields.Timestamp": { 
       "gt": "2017-02-10T10:07:04.4367673Z" 
       } 
      } 
      } 
     } 
     } 
    } 

을 사용했다.

MY 출력 :

"hits": { 
    "total": 6, 
    "max_score": 1, 
    "hits": [ 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "5", 
     "_score": 1, 
     "_source": { 

     } 
     }, 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "2", 
     "_score": 1, 
     "_source": { 
      "fields": { 
      "Timestamp": "2017-02-10T10:07:04.4367673Z" 
      } 
     } 
     }, 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "4", 
     "_score": 1, 
     "_source": { 
      "fields": { 
      "Timestamp": "2017-02-10T10:07:04.4836472Z" 
      } 
     } 
     }, 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "6", 
     "_score": 1, 
     "_source": { 

     } 
     }, 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "1", 
     "_score": 1, 
     "_source": { 
      "fields": { 
      "Timestamp": "2017-02-10T10:07:04.4367673Z" 
      } 
     } 
     }, 
     { 
     "_index": "matrix", 
     "_type": "neo", 
     "_id": "3", 
     "_score": 1, 
     "_source": { 
      "fields": { 
      "Timestamp": "2017-02-10T10:07:12.1147415Z" 
      } 
     } 
     } 
    ] 
    }, 
    "aggregations": { 
    "last_5_mins": { 
     "doc_count": 2 
    } 
    } 
} 

어떻게 일치 된 문서의 타임 스탬프를받을 수 있나요? 덕분에 ..

답변

0

당신은 그것에 대해 집계를 사용할 필요가 없습니다, 단순히 쿼리 섹션에서 range 쿼리를 이동하고 당신은 좋은 위치 : 당신이 일부러 왜

{ 
    "_source": [ 
     "fields.Timestamp" 
    ], 
    "query": { 
     "bool": { 
     "filter": { 
      "range": { 
       "fields.Timestamp": { 
        "gt": "2017-02-10T10:07:04.4367673Z" 
       } 
      } 
     } 
     } 
    } 
} 
+0

Thanks..May는 내가 아는 이것에 대해 필터를 사용 했습니까? 필터가 없으므로'fields.Timestamp' 검색에 많은 비용이 듭니다. 그리고 나는 또한 문서의 수를 원한다. – Seeker

+0

여기, 필터를 사용 중입니다. 필터를 사용하지 않는 것이 "비용이 많이 드는"것과 같지 않다는 것을 아십시오. 다른 많은 요인들이 작용합니다. 문서의 수는 응답의 'hits.total'값입니다. – Val

+0

고맙습니다 .. 도움이 되었습니까? 제가 생각하는 요소가 무엇인지 압니까? – Seeker

관련 문제