# I try to add a custom script field which is a returns true if the document's id exists

**URL:** <https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854>\
**Category:** Elasticsearch\
**Created:** [November 28, 2012, 1:51am UTC](https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854 "2012-11-28T01:51:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![11113](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/11113/32/2603_2.png) [@11113](https://discuss.elastic.co/u/11113)\
**Post date:** [November 28, 2012, 1:51am UTC](https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854/1 "2012-11-28T01:51:40Z")

</div>

I try to add a custom script field which is a returns true if the  
document's id exists in an array but it does not work.  
curl -XGET '[http://localhost:9200/type/index/\_search?pretty](http://localhost:9200/type/index/_search?pretty)' -d '{  
"from" : 0,  
"size" : 20,  
"query" : {  
"query\_string" : {  
"query" : "\*",  
"default\_field" : "id"  
}  
},  
"sort" : {  
"\_script" : {  
"script" : "return friends\_visits\_ids contains (\_fields.\_id.value)",  
"type" : "string",  
"order" : "asc",  
"params" : {  
"friends\_visits\_ids" : ["ce9c1f41-8a46-43b0-8ee8-a1fd76e339d8"]  
}  
}  
}  
}  
'  
And I can get return without sorting, like this:

{  
"took" : 2,  
"timed\_out" : false,  
"\_shards" : {  
"total" : 5,  
"successful" : 5,  
"failed" : 0  
},  
"hits" : {  
"total" : 239,  
"max\_score" : null,  
"hits" : [ {  
"\_index" : "momo",  
"\_type" : "help",  
"\_id" : "02766777-3128-4f00-a983-32080e791849",  
"\_score" : null, "\_source" : {...},  
"sort" : ["[ce9c1f41-8a46-43b0-8ee8-a1fd76e339d8]" ]  
}, {  
"\_index" : "momo",  
"\_type" : "help",  
"\_id" : "040d7285-2ce9-4f8f-b5d6-208c5f8ecf7c",  
"\_score" : null, "\_source" : { ...},  
"sort" : ["[ce9c1f41-8a46-43b0-8ee8-a1fd76e339d8]" ]  
},  
....  
}

How can I make it work?

--

---

<div class="post-metadata">

**Author:** ![11113](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/11113/32/2603_2.png) [@11113](https://discuss.elastic.co/u/11113)\
**Post date:** [November 28, 2012, 3:31am UTC](https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854/2 "2012-11-28T03:31:52Z")

</div>

I mean I want to custom the sorting.

--

---

<div class="post-metadata">

**Author:** ![jprante](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jprante/32/44941_2.png) [@jprante](https://discuss.elastic.co/u/jprante)\
**Post date:** [November 28, 2012, 5:25pm UTC](https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854/3 "2012-11-28T17:25:58Z")

</div>

Hi,

you need a fix in your MVEL syntax, stored \_id field, and "doc" access  
because it is faster.

Please try my suggestion at

> <https://gist.github.com/jprante/4162665>

Best regards,

Jörg

On Wednesday, November 28, 2012 4:31:52 AM UTC+1, Di Wu wrote:

> I mean I want to custom the sorting.

--

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 3:02am UTC](https://discuss.elastic.co/t/i-try-to-add-a-custom-script-field-which-is-a-returns-true-if-the-documents-id-exists/9854/4 "2017-07-06T03:02:24Z")

</div>


