# Accessing doc fields in a scoring script

**URL:** https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179
**Category:** Elasticsearch
**Created:** [November 17, 2017, 5:42pm UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179 "2017-11-17T17:42:32Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![mk11](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mk11/32/24396_2.png) [@mk11](https://discuss.elastic.co/u/mk11)
#### Post date: [November 17, 2017, 5:42pm UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179/1 "2017-11-17T17:42:32Z")

</div>

I suspect there is an easy answer to this, but I've searched and not found an explanation. The problem is when I add a params block to my scoring function I can no longer access doc fields.

For example (I'm using the Ruby DSL), the following works fine:  
this\_works = search {  
query do  
function\_score do  
query do  
match\_all  
end  
functions \<\< {  
script\_score: {  
script: {  
source: "doc['last\_sold'].date.getMillis()"  
}  
}  
}  
end  
end  
size 100  
}

However, the following throws the error "No field found for [last\_sold]in mapping with types []":  
this\_does\_not\_work = search {  
query do  
function\_score do  
query do  
match\_all  
end  
functions \<\< {  
script\_score: {  
script: {  
params: {  
something: 1  
},  
source: "doc['last\_sold'].date.getMills() + params.something"  
}  
}  
}  
end  
end  
size 100  
}

Thanks in advance.  
Mark

---

<div class="post-metadata">

### Author: ![mk11](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mk11/32/24396_2.png) [@mk11](https://discuss.elastic.co/u/mk11)
#### Post date: [November 17, 2017, 5:43pm UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179/2 "2017-11-17T17:43:37Z")

</div>

apologies, the preformatted text tool doesn't seem to like my code.

---

<div class="post-metadata">

### Author: ![xavierfacq](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/xavierfacq/32/8744_2.png) [@xavierfacq](https://discuss.elastic.co/u/xavierfacq)
#### Post date: [November 18, 2017, 6:43pm UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179/3 "2017-11-18T18:43:55Z")

</div>

> [@mk11](#):
>
> source: "doc['last\_sold'].date.getMills() + params.something"

a "i" is missing in the date.getMills() ?

---

<div class="post-metadata">

### Author: ![mk11](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mk11/32/24396_2.png) [@mk11](https://discuss.elastic.co/u/mk11)
#### Post date: [November 19, 2017, 3:34am UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179/4 "2017-11-19T03:34:28Z")

</div>

Thank you. In addition, I found I could use .value.millis instead of date.getMillis().

---

<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: [December 17, 2017, 3:34am UTC](https://discuss.elastic.co/t/accessing-doc-fields-in-a-scoring-script/108179/5 "2017-12-17T03:34:40Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
