Hi,

I came up with something but I am not sure this is optimal.
Can you let me know what I could improve?

{
  "query": {
      "bool": {
          "must": [
              {"has_child" : {
                  "type" : "books",
                  "score_mode": "sum",
                  "query" : {
                      "function_score": {
                          "filter": {
                              "and":[
                                  {"range" : { "publishedAt" : { "gte" : 
"2014-07-20T22:04:51.000Z" } } }
                              ]
                          },
                          "script_score": { "script": "doc['rating'].value" 
}
                      }
                  }
              }},
              {"filtered" : {
                  "boost": 0,
                  "query": { "match_all": { }},
                  "filter": {
                      "and":[
                          {"range" : { "fansCount" : { "gt" : 150 } } }
                      ]
                  }
              }}
          ]
      }   
  }
}

This will return me the cumulated rating as score.

Thanks!

On Tuesday, July 22, 2014 4:15:56 PM UTC-7, Maxime Nay wrote:
>
> Hi,
>
> Here is my problem:
>
> We have Authors (parents) and books (children). Authors can be regularly 
> updated (let's say the number of their fans can vary with the time). Books 
> are immutable, and each book has a rating.
> I want to be able to get the parents that have the highest cumulated 
> rating score for a particular period of time. 
> For example I have:
>
> John, who had 100 fans in January and 200 fans in July, wrote:
> - "book 1" with a rating of 12 in January
> - "book 3" with a rating of 19 in March
> - "book 6" with a rating of 9 in June
>
> Jane, who had 50 fans in January and 600 in July, wrote:
> - "book 2" with a rating of 13 in February
> - "book 4" with a rating of 11 in April
> - "book 5" with a rating of 10 in May
>
> In July, I would like to get back, for the time period February - May, the 
> following results (ordered by cumulated rated):
> Jane, 600 fans - 34 cumulated rating
> John, 200 fans - 19 cumulated rating
>
>
> At the same time, I also want to be able to filter based on the content of 
> the books and also based on characteristics of the authors.
>
> I tried to use a parent/child model, and use a query with has_child and 
> function_score, but couldn't find a way to do I am looking for.
>
> Any idea?
>
> 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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/69c83a6a-4a1f-46a7-b3cb-964f5ab283f7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to