I should have looked at the documentation first :) it is 'doc.score'.
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_score
On Tuesday, August 19, 2014 7:07:18 PM UTC+1, Dan Tuffery wrote:
>
> Hi Martijn,
>
> Thanks for your response, that seems like the right approach. The problem
> I am seeing now is that the metrics aggregation is always returning 0. Even
> if I remove top_hits out of the query the metrics aggregation still returns
> alwyas 0, so something is quite right? Here is a simplified example:
>
> {
> "query": {
> "match": {
> "r_message": "some text"
> }
> },
> "aggs": {
> "replies": {
> "terms": {
> "field": "myField",
> "order": {
> "top_score": "desc"
> }
> },
> "aggs": {
> "top_score": {
> "max": {
> "lang": "groovy",
> "script": "_score"
> }
> }
> }
> }
> }
> }
>
> The result is:
>
>
> - aggregations: {
> - replies: {
> - buckets: [
> - {
> - key: 5643
> - doc_count: 1
> - top_score: {
> - value: 0
> }
> }
> ]
> }
> }
>
>
> This returns the following result.
>
> On Tuesday, August 19, 2014 8:47:40 AM UTC+1, Martijn v Groningen wrote:
>>
>> Hi Dan,
>>
>> The buckets of there replies terms agg are sorted by default by their doc
>> count, but the hits inside topChildren agg are sorted by default by the
>> score of the query.
>> I think if you sort the replies buckets by highest score you get what you
>> want. In order to do this you need to define a max metric agg, that keeps
>> track of the score and let the replies terms agg sort its buckets by that,
>> similar to what is done in this example:
>> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example
>>
>> Martijn
>>
>>
>> On 18 August 2014 23:52, Dan Tuffery <[email protected]> wrote:
>>
>>> I using the top hits aggregation with a has_child query. In the top_hits
>>> aggregation documentation it says '*By default the hits are sorted by
>>> the score of the main query*', but I'm not seeing that in the results
>>> for my query
>>>
>>> {
>>> "from": 0,
>>> "size": 3,
>>> "query": {
>>> "has_child": {
>>> "score_mode": "max",
>>> "type": "child_type",
>>> "query": {
>>> "match": {
>>> "myField": {
>>> "query": "some text"
>>> }
>>> }
>>> }
>>> }
>>> },
>>> "aggs": {
>>> "replies": {
>>> "terms": {
>>> "field": "parent_type_id",
>>> "size": 3
>>> },
>>> "aggs": {
>>> "topChildren": {
>>> "top_hits": {
>>> "size": 1
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>>
>>> the has_child query returns three parent results with the following
>>> scores.
>>>
>>> - doc 1 = 0.83619833
>>> - doc 2 = 0.7210085
>>> - doc 3 = 0.7210085
>>>
>>> The score for the top hits aggregations are:
>>>
>>> - first top hit aggregation = 0.29160267
>>> - second top hit aggregation = 0.83619833
>>> - third top hit aggregation = 0.58320534
>>>
>>> So the 'second top hit aggregation' should be returned first followed
>>> with aggregations with the score 0.7210085?
>>>
>>>
>>>
>>>
>>>
>>> --
>>> 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/0b6849ad-4308-4afe-a76b-80153620f74b%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/elasticsearch/0b6849ad-4308-4afe-a76b-80153620f74b%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Met vriendelijke groet,
>>
>> Martijn van Groningen
>>
>
--
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/8967c8c1-4b3a-4c5b-822f-b1bdb86f7480%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.