TTL value must be 0. Illegal value provided
I recently recieved some exceptions in my log while updating documents into my index. org.elasticsearch.ElasticSearchIllegalArgumentException: TTL value must be 0. Illegal value provided [-17810] at org.elasticsearch.action.index.IndexRequest.ttl(IndexRequest.java:291) at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:153) at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:60) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:183) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:179) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:63) at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$AsyncSingleAction$1.run(TransportInstanceSingleOperationAction.java:192) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) I insert/update a lot of documents into Elasticsearch daily at 3:00 am by using an UPSERT command. All of these documents (offers) have a TTL of 30 days (set using a template) client.prepareUpdate(indexName, documentTypeName, offer.internal_id) .setDoc(offer) .setUpsert(newOffer) I don't understand why I receive these errors. The expired documents *should already be removed* by elasticsearch right? Any help or pointers are much appreciated. Questions: 1) I insert a document with a TTL of 30 days. I update this document daily. Will the TTL be reset to 30 days on every update or will it just decrease no matter what I do with the document.? 2) I found a similar topic https://groups.google.com/forum/#!msg/elasticsearch/ifvWZJjQuvU/cZzkhfmg6YoJ with Github issue https://github.com/elasticsearch/elasticsearch/issues/3256. This case describes a race condition while updating a document right after the TTL expired. In my case however documents are updated daily so expired document should already be removed right? 3) is there a way (e.g. a query) to tell what documents are about to expire / or are expired and need to be removed by elasticsearch. 4) When query elasticsearch for document which have a TTL 0 , it returns no documents. How come? This is the query I execute: { fields: [_ttl], query: { match_all: {} }, filter: { range: { _ttl: { lte: 1 } } } } -- You received this message because you are subscribed to the Google Groups elasticsearch group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/5c671844-94ba-4be1-a94c-d6053f01d04a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: TTL value must be 0. Illegal value provided
forgot to mention I'm using version 0.90.5 Op dinsdag 5 augustus 2014 11:08:37 UTC+2 schreef Dennis de Boer: I recently recieved some exceptions in my log while updating documents into my index. org.elasticsearch.ElasticSearchIllegalArgumentException: TTL value must be 0. Illegal value provided [-17810] at org.elasticsearch.action.index.IndexRequest.ttl(IndexRequest.java:291) at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:153) at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:60) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:183) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:179) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:63) at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$AsyncSingleAction$1.run(TransportInstanceSingleOperationAction.java:192) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) I insert/update a lot of documents into Elasticsearch daily at 3:00 am by using an UPSERT command. All of these documents (offers) have a TTL of 30 days (set using a template) client.prepareUpdate(indexName, documentTypeName, offer.internal_id) .setDoc(offer) .setUpsert(newOffer) I don't understand why I receive these errors. The expired documents *should already be removed* by elasticsearch right? Any help or pointers are much appreciated. Questions: 1) I insert a document with a TTL of 30 days. I update this document daily. Will the TTL be reset to 30 days on every update or will it just decrease no matter what I do with the document.? 2) I found a similar topic https://groups.google.com/forum/#!msg/elasticsearch/ifvWZJjQuvU/cZzkhfmg6YoJ with Github issue https://github.com/elasticsearch/elasticsearch/issues/3256. This case describes a race condition while updating a document right after the TTL expired. In my case however documents are updated daily so expired document should already be removed right? 3) is there a way (e.g. a query) to tell what documents are about to expire / or are expired and need to be removed by elasticsearch. 4) When query elasticsearch for document which have a TTL 0 , it returns no documents. How come? This is the query I execute: { fields: [_ttl], query: { match_all: {} }, filter: { range: { _ttl: { lte: 1 } } } } -- You received this message because you are subscribed to the Google Groups elasticsearch group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/ed71b65f-f77d-4b39-b9b3-4cab06d5be1a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.