C'è un modo per recuperare dalle informazioni ElasticSearch su quando un indice specifico è stato aggiornato l'ultima volta? Il mio obiettivo è essere in grado di dire quando è stata l'ultima volta che i documenti sono stati inseriti/aggiornati/cancellati nell'indice. Se questo non è possibile, c'è qualcosa che posso aggiungere nelle mie richieste di modifica dell'indice che fornirà queste informazioni in seguito?Indice di elasticsearch l'ora dell'ultimo aggiornamento
10
A
risposta
7
È possibile ottenere la data di modifica dal _timestamp
Per rendere più facile per tornare il timestamp è possibile impostare elasticsearch di conservarlo:
curl -XPUT "http://localhost:9200/myindex/mytype/_mapping" -d'
{
"mytype": {
"_timestamp": {
"enabled": "true",
"store": "yes"
}
}
}'
Se inserisco un documento e quindi query io ottenere il timestamp:
curl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty' -d '{
> fields : ["_timestamp"],
> "query": {
> "query_string": { "query":"*"}
> }
> }'
{
"took" : 7,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "myindex",
"_type" : "mytype",
"_id" : "1",
"_score" : 1.0,
"fields" : {
"_timestamp" : 1417599223918
}
} ]
}
}
aggiornamento del documento esistente:
0.123.516,41 milacurl -XPOST "http://localhost:9200/myindex/mytype/1/_update" -d'
{
"doc" : {
"field1": "data",
"field2": "more data"
},
"doc_as_upsert" : true
}'
Re-esecuzione della query precedente mi mostra un timestamp aggiornato:
"fields" : {
"_timestamp" : 1417599620167
}
0
Non so se ci sono persone che sono alla ricerca di un equivalente, ma qui è una soluzione utilizzando cocci statistiche per> elasticsearch 5 utenti: ricciolo XGET http://localhost:9200/_stats?level=shards
Come vedrete, si hanno alcune informazioni per gli indici, impegna e/o di bagliori che si potrebbe utilizzare per vedere se l'indice è cambiato (o non).
Spero che possa aiutare qualcuno.
Problemi correlati
- 1. Indice lento di Elasticsearch
- 2. Errore indice bulk di Elasticsearch all'avvio Sonar
- 3. Aggiornamento dell'analizzatore nelle impostazioni di ElasticSearch
- 4. ElasticSearch Ottieni nomi indice e dimensioni archivio
- 5. Campi indice con trattini in Elasticsearch
- 6. Query Elasticsearch su un indice specifico
- 7. elasticsearch: Come eliminare un indice utilizzando pitone
- 8. Aggiornamento indice Solr tramite query
- 9. Django Haystack indice di aggiornamento più veloce
- 10. Aggiornamento per query in Elasticsearch utilizzando Java
- 11. Elasticsearch Bulk Index - Aggiornamento solo se esistente
- 12. Aggiornamento cumulativo su ElasticSearch tramite NEST
- 13. Rimozione di un indice da un alias in Elasticsearch
- 14. elasticsearch api indice di massa tramite resto endpoint
- 15. API di Elasticsearch Bulk - Indice vs Crea/Aggiorna
- 16. Aggiornamento di un campo in tutti i record in elasticsearch
- 17. Come escludere il contenuto HTML dal mio indice elasticsearch?
- 18. Come interrogare un indice Elasticsearch utilizzando Pyspark e Dataframes
- 19. Elenca tutti i campi in un indice elasticsearch?
- 20. In loop su tutti i documenti in un indice elasticsearch
- 21. MongoDB + Elasticsearch o solo Elasticsearch?
- 22. metodo "aggiornamento" con indice di lunghezza variabile in Scala
- 23. indice di aggiornamento dopo l'ordinamento dei dati-frame
- 24. "Errore in strsplit (version_with_dots," \\. ") [[1]]: indice fuori indice" per la funzione di aggiornamento
- 25. Aggiornamento complesso documento nidificato elasticsearch utilizzando logstash e JDBC
- 26. Come reindex ElasticSearch rapidamente?
- 27. Elasticsearch _timestamp
- 28. Aggiornamento dei number_of_replicas indice predefinita per nuovi indici
- 29. Elasticsearch Elimina proprietà mappatura
- 30. Come definire i nomi di campo dell'indice ElasticSearch per un POJO utilizzando Spring Data ElasticSearch
Grazie Olly. Ho provato questo e infatti il timestamp viene aggiornato insieme al documento. Ma questa è solo la metà di ciò di cui ho bisogno, dal momento che voglio ottenere il timestamp del documento che è stato aggiornato più di recente. C'è un modo semplice per farlo o devo fare una query per tutti i documenti con data/ora e ottenere il risultato migliore? Inoltre, se un documento viene cancellato dall'indice, non ci sarà il timestamp per indicare che qualcosa è cambiato, corretto? – dchar
Farei un'aggregazione che restituisce il massimo _timestamp. Se è necessario anche il documento, è possibile eseguire una seconda ricerca che utilizza il timestamp. Hai ragione sul secondo punto, se il documento è cancellato non sarai in grado di cercarlo. –
Ho bisogno solo del timestamp. Usando la massima aggregazione ha funzionato come un fascino. Grazie per l'aiuto! – dchar