It turns out, I need to set a property "include_in_parent": true in the 
mapping to access the field in the script.

"books": {
                        "type": "nested",
                        "include_in_parent": true,
                        "properties": { ..... }
}


On Wednesday, August 27, 2014 9:25:26 AM UTC-7, Srinivasan Ramaswamy wrote:
>
> I am able to access fields at the document level, the problem is only when 
> i try to access nested fields with doc['nested_field'] in the script. 
> Anyone has a solution for this ?
>
>
> On Wednesday, August 27, 2014 12:54:26 AM UTC-7, Srinivasan Ramaswamy 
> wrote:
>>
>> I have the following document schema
>>
>> authorid: 1
>> athorName: joshua bloch
>> books: [
>> {
>> bookId: 100
>> bookName: effective java
>> sales: 200
>> },
>> {
>> bookId: 101
>> bookName: Java Puzzlers
>> sales: 100
>> }
>> ]
>> sellerTags: ["java book", "effective java", "joshua bloch"]
>>
>> 'books' is a nested field in the above schema. I am trying to access that 
>> nested field in a script inside a function query, but something is going 
>> wrong.
>>
>> {
>>     "explain": true, 
>>    "query": {
>>       "function_score": {
>>          "boost_mode": "replace",
>>          "query": {
>>             "match": { "sellerTags":"java book"}
>>          },
>>          "script_score": {             
>>             "params": {
>>                "param1": 2
>>             },
>>              "script": "doc['books.sales'].value * param1 "
>>          }
>>       }
>>    }
>> }
>>
>> Though each document returned has sales in the index, I get a score of 0 
>> for both the documents i have (I have got one more document that matches 
>> the query). If it is helpful here is a part of explain string that shows 
>> that script is making the score as 0
>>
>> "details": [
>>                         {
>>                            "value": 0,
>>                            "description": "script score function: 
>> composed of:",
>>                            "details": [
>>                               {
>>                                  "value": 3.5981894,
>>                                  "description": "sum of:",
>>                                  "details": [ ...PerFieldSimilarity...]
>>                               } ]
>>
>>
>>
>> Can some one point out the mistake in my query. Why do i get the score as 
>> 0 and how to fix it ?
>>
>>

-- 
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/1db5847d-8169-426f-bc0c-8a5c289de87b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to