Thanks this is working

On Tuesday, October 28, 2014 8:40:12 AM UTC+5:30, [email protected] wrote:
>
>
> "script": "removeObjects = new java.util.ArrayList(); foreach (item : 
> ctx._source.list) {if (item['tweet_id'] == tweet_id) 
> {removeObjects.add(item) } } 
> for(removeObject:removeObjects){ctx._source.list.remove(removeObject);}",
>
> 2014년 10월 8일 수요일 오후 8시 12분 55초 UTC+9, Rajit Garg 님의 말:
>>
>> Hey 
>>
>> *I figured it out, I am able to update but I am not able to remove object 
>> that satisfies the condition*
>>
>> PUT twitter/twit/1
>> {
>>   "list": [
>>     {
>>       "tweet_id": "1",
>>       "a": "b"
>>     },
>>     {
>>       "tweet_id": "123",
>>       "a": "f"
>>     }
>>   ]
>> }
>>
>> POST /twitter/twit/1/_update
>> {
>>   "script": "foreach (item : ctx._source.list) {if (item['tweet_id'] == 
>> tweet_id) { item['new_field'] = 'ghi'; }  }",
>>   "params": {
>>     "tweet_id": "123"
>>   }
>> }
>> *this is working*
>>
>> *for remove i am doing this*
>>
>> POST /twitter/twit/1/_update
>> {
>>   "script": "foreach (item : ctx._source.list) {if (item['tweet_id'] == 
>> tweet_id) {ctx._source.list.remove(item);  }  }",
>>   "params": {
>>     "tweet_id": "123"
>>   }
>> }
>>
>>
>> *but this is not working and giving this error, *
>>
>> ElasticsearchIllegalArgumentException[failed to execute script]; nested: 
>> ConcurrentModificationException; 
>> Error: ElasticsearchIllegalArgumentException[failed to execute script]; 
>> nested: ConcurrentModificationException; 
>> ..................................
>> ...............................
>>
>>
>> *please help........*
>>
>>
>>
>>
>> On Wednesday, April 10, 2013 12:22:14 PM UTC+5:30, Andrei Tolnai wrote:
>>>
>>> Hello.
>>>
>>> I use *Elastic Search Java API *for basic *CRUD *operations on ES 
>>> documents; with *root type* documents it is working fine.
>>>
>>> However when I want to delete a nested document, I don't know how to use 
>>> the *Java API* and scripting that *Elastic Search *provides.
>>>
>>> I have the following *root type* document which has in it a nested *users 
>>> *property (nested document).
>>> {
>>>    "customer":
>>>       {
>>>          "_all" : {"enabled" : false},
>>>          "_source" : {"enabled" : true},
>>>          "store" : "true",
>>>          "properties":
>>>             {
>>>                "location" : { "type": "string", "store": "yes", 
>>> "index":"not_analyzed" },
>>>                "comments" : { "type": "string", "store": "yes", 
>>> "index":"not_analyzed" },
>>>               * "users":*
>>> *                  {*
>>> *                     "type":"nested",*
>>> *                     "store":"yes", *
>>> *                     "properties":*
>>> *                        {*
>>> *                           "_id" : { "type":"string", "store":"yes", 
>>> "index":"not_analyzed" },*
>>> *                           "name" : { "type":"string", "store":"yes", 
>>> "index":"not_analyzed" },*
>>> *                           "birthDate" : { "type":"date", 
>>> "store":"yes", "index":"not_analyzed" }*
>>> *                        }*
>>> *                  }*
>>>             }
>>>       }
>>> }
>>>
>>> If I want to add a user I do the following in *Java */ *Scala *code:
>>>
>>> val json = " 
>>> {\"_id\":\"1\",\"name\":\"Anthony\",\"birthDate\":\"2013-04-10T06:45:26.186Z\"}"
>>> val updateRequest = new UpdateRequest("indexName", "customer", 
>>> customerId)
>>> updateRequest.script(" if (ctx._source.users == null) { 
>>> ctx._source.users =  "+json+"  } else {  ctx._source.users += "+json+" } ")
>>>
>>> This works OK for adding nested *users *AKA updating the *customer root 
>>> type* document.
>>>
>>> How is it to be done for *deleting* or *updating *a specific user ID 
>>> from the nested *users* nested document?
>>>
>>>
>>> Thanks!
>>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/a4ccc10c-a06e-4c47-b486-8fdd1da4bfa3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to