I am a bit confused, the termsStatsFacet should return the sum in the

"total" field. but the total is wrong (the min and max are good).

as you can see below, there are 3 hits, but the stats are wrong (except for

the min and the max)

I am really confused about the "count" why it's 3 and 7?

here is, how I declare my facet:

search.addFacet(termsStatsFacet("payment_stats").keyField("statuses.payment.code").valueField("amount"));

here is the response from elasticsearch:

{

"took" : 3,

"timed_out" : false,

"_shards" : {

"total" : 5,

"successful" : 5,

"failed" : 0

},

"hits" : {

"total" : 3,

"max_score" : null,

"hits" : [ {

"_index" : "sales",

"_type" : "bill",

"_id" : "5201_12",

"_score" : null,

"fields" : {

"amount" : 2456.0,

"payment" : {

"code" : "not.paid"

},

....

},

"sort" : [ 1383609600000 ]

}, {

"_index" : "sales",

"_type" : "bill",

"_id" : "5203_12",

"_score" : null,

"fields" : {

"amount" : 314.96,

"payment" : {

"code" : "paid"

},

....

},

"sort" : [ -9223372036854775808 ]

}, {

"_index" : "sales",

"_type" : "bill",

"_id" : "5204_12",

"_score" : null,

"fields" : {

"amount" : 68.96,

"payment" : {

"code" : "paid"

},

....

},

"sort" : [ -9223372036854775808 ]

} ]

},

"facets" : {

"payment_stats" : {

"_type" : "terms_stats",

"missing" : 0,

"terms" : [ {

"term" : "paid",

"count" : 7,

"total_count" : 7,

"min" : 68.96,

"max" : 314.96,

"total" : 1466.72,

"mean" : 209.53142857142856

}, {

"term" : "not.paid",

"count" : 3,

"total_count" : 3,

"min" : 2456.0,

"max" : 2456.0,

"total" : 7368.0,

"mean" : 2456.0

} ]

}

}

}

If I declare a simple TermFacet I got the good count:

"payment" : {

"_type" : "terms",

"missing" : 0,

"total" : 3,

"other" : 0,

"terms" : [ {

"term" : "not.paid",

"count" : 1

}, {

"term" : "paid",

"count" : 2

} ]

}

thanks for your help

Le lundi 14 octobre 2013 16:19:58 UTC-7, didier....@gmail.com a écrit :

Hi Ivan,

thanks for your help, now I got my termsStatsFacet but I don't know how to

do the sum:

termsStatsFacet("payment").keyField("payment.code").valueScript(

"doc['amount'].value")

any clue?

thanks

Le lundi 14 octobre 2013 14:23:16 UTC-7, Ivan Brusic a écrit :

Look into using the value_script with the terms stats facet.

Elasticsearch Platform — Find real-time answers at scale | Elastic

--

Ivan

On Mon, Oct 14, 2013 at 2:16 PM, didier....@gmail.com wrote:

Hi folks,

I am wondering if it is possible, for any kind of facets, to define and

use a function instead of the count ?

Quick example:

I have a term facet on a field which can be Paid or Unpaid, and I got

the number of hits.

term: Paid

count: 12

term: Unpaid

count: 10

I also have another field "amount", and I am wondering if I can define a

function to say : for each match, add the amount to the sum.

term: Paid

count: 120 (for an amount of 10)

term: Unpaid

count: 100

Thanks for your help

--

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 elasticsearc...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

--

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+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.