2013-12-21 61 views

回答

39

您是否在文檔映射中啓用了_timestamp

{ 
    "doctype": { 
     "_timestamp": { 
      "enabled": "true", 
      "store": "yes" 
     }, 
     "properties": { 
      ... 
     } 
    } 
} 

你可以在這裏查看你的映射:

http://localhost:9200/_all/_mapping 

如果是這樣,我認爲這可能工作得到最新:

{ 
    "query": { 
    "match_all": {} 
    }, 
    "size": 1, 
    "sort": [ 
    { 
     "_timestamp": { 
     "order": "desc" 
     } 
    } 
    ] 
} 
+0

至少在我使用的客戶端(Chrome「高級REST客戶端」擴展)中,我必須將「」大小「:1」的「1」放在雙引號中才能生效。 –

+0

使用_timestamp字段和使用自定義時間戳字段有什麼區別? – castarco

+0

@castarco,啓用時,_timestamp會自動生成,因此您可以像使用mconlin建議的那樣使用它,而不是添加自己的。但是,從2.0.0-beta2開始,_timestamp已被棄用,因此您應該使用自己的時間戳:) https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-timestamp- field.html – mork

4

您可以使用日期字段中的sortsize=1參數。 它有幫助嗎?

+0

如果我們正在查找擁有想要的第一級屬性的最後一個文檔,我們該怎麼辦? ,因爲在某些情況下,我在我的索引/文檔查詢結果中: _registered:{date:2016-03-18,..... _pending:{date:2016-03-16,... It將檢索我只有_register文件,因爲它更新,但是當我嘗試解析_pending。 它因失敗的關鍵而失敗。我們可以在搜索查詢中指定這個嗎?謝謝 ! – Alex

+0

不知道。我不明白。你應該用一個例子來開一個新的討論嗎? – dadoonet

6

有關信息的目的,_timestamp現在因爲2.0棄用的3.0β2。 在您的映射中使用date類型。

date數據類型文檔的簡單日期映射JSON:

{ 
    "mappings": { 
    "my_type": { 
     "properties": { 
      "date": { 
      "type": "date" 
     } 
     } 
    } 
    } 
} 

您還可以在date添加format場:

{ 
    "mappings": { 
    "my_type": { 
     "properties": { 
     "date": { 
      "type": "date", 
      "format": "yyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" 
     } 
     } 
    } 
    } 
} 
3

日期使用(帶出來時,最後一ID郵票)

樣品URLhttp://localhost:9200/deal/dealsdetails/
方法:POST

查詢:

{ 
    "fields": ["_id"], 
    "sort": [{ 
     "created_date": { 
     "order": "desc" 
     } 
    }, 
    { 
     "_score": { 
     "order": "desc" 
     } 
    } 
    ], 
    "size": 1 
} 

結果:

{ 
    "took": 4, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 9, 
    "max_score": null, 
    "hits": [{ 
     "_index": "deal", 
     "_type": "dealsdetails", 
     "_id": "10", 
     "_score": 1, 
     "sort": [ 
     1478266145174, 
     1 
     ] 
    }] 
    } 
} 
0

的_timestamp並沒有爲我工作了,

這個查詢請求也爲我工作:

(如mconlin的答案)

{ 
    "query": { 
    "match_all": {} 
    }, 
    "size": "1", 
    "sort": [ 
    { 
     "@timestamp": { 
     "order": "desc" 
     } 
    } 
    ] 
} 

可能是微不足道的,但_timestamp答案沒有給一個錯誤,但不是一個好的結果要麼...

希望能幫助別人......

(kibana /彈性5.0.4)

S.