2017-02-11 3 views
0

私はいくつかのフィールドを持つ文書を持っている、私は範囲のクエリを使用して行うことができますが、すべての文書のフィールドの中で私は唯一のタイムスタンプフィールドを表示する必要があります特定の時間後に挿入された文書の数を検索したい。集計内で_sourceフィールドを使用できますか?

私は出力が私はむしろ私は私のクエリと一致していない文書になっマッチした文書にタイムスタンプを取得didntは見たとき、私は次のクエリ

{ 
     "_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あなたはdidntの理由を私は知っていますこれにフィルタを使用しましたか?フィルタを使用しないと、 'fields.Timestamp'を検索するコストのかかる検索になるためです。また、私も文書の数が欲しいです。 – Seeker

+0

こちら、フィルタを使用しています。フィルタを使用しないことはコストのかかるものではないことを知っているだけで、他にも多くの要因があります。ドキュメントの数は、応答の中の 'hits.total'値です。 – Val

+0

ありがとうございました..それは助けました...あなたが取り組んでいる要因は何か分かりますか? – Seeker

関連する問題