Hi Yonik, are you certain that nesting a function works as documented on http://yonik.com/solr-subfacets/?
top_authors:{ type: terms, field: author, limit: 7, sort: "revenue desc", facet:{ revenue: "sum(sales)" } } I’m getting the feeling that the function is never really executed because, for my index, calling sum() with a non-number field (e.g. a multi-valued string field) throws an error when *not nested* but does *not throw an error* when nested: json.facet={all_pop: "sum(gtin)“} "error":{ "trace":“java.lang.UnsupportedOperationException at org.apache.lucene.queries.function.FunctionValues.doubleVal(FunctionValues.java:47) And the following does not throw an error but definitely should if the function would be executed: json.facet={all_pop:"sum(popularity)",shop_cat: {type:terms, field:shop_cat, facet: {cat_pop:"sum(gtin)"}}} returns: "facets":{ "count":2815500, "all_pop":1.4065865823321116E8, "shop_cat":{ "buckets":[{ "val":"Kontaktlinsen > Torische Linsen", "count":75168, "cat_pop":0.0}, { "val":"Damen-Mode/Inspirationen", "count":47053, "cat_pop":0.0}, For completeness: here is the field directive for „gtin“ with „text_noleadzero“ based on „solr.TextField“: <field name="gtin" type="text_noleadzero" indexed="true" stored="true" required="false" multiValued="true“/> Is this a bug or is the documentation a glimpse of the future? I will try version 6.3.0, now. I was still on 6.1.0 for the above tests. (I have also tried with the „avg“ function, just to make sure, but same there.) Cheers, Chantal > Am 15.12.2016 um 15:17 schrieb Chantal Ackermann <c.ackerm...@it-agenten.com>: > > Hi Yonik, > > > here is an update on what I’ve tried so far, unfortunately without any more > luck. > > The field directive is (should have included this when asking the question): > > <field name="popularity" type="float" indexed="true" stored="false" > required="false" multiValued="false" docValues="true“/> > > I have also re-indexed (removed data/ and indexed from scratch). The > popularity field is populated with random values (as I don’t have the real > values from production) meaning that all documents have values > 0. > > Here the statistics output: > > "stats":{ > "stats_fields":{ > "popularity":{ > "min":7.952374289743602E-5, > "max":99.99993896484375, > "count":1687500, > "missing":0, > "sum":8.436878611434968E7, > "sumOfSquares":5.626142812197906E9, > "mean":49.9963176973924, > "stddev":28.885623872869992}, > > And this is the relevant facet output from calling > > /solr/<core>/query? > json.facet={ > num_pop:{query: "popularity[* TO *]“}, > all_pop: "sum(popularity)“, > shop_cat: {type:terms, field:shop_cat, facet: {cat_pop: > "sum(popularity)"}}}&q=*:*&rows=1&stats.field=popularity&wt=json > > "facets":{ > "count":1687500, > "all_pop":1.5893775613258794E8, > "num_pop":{ > "count":1687500}, > "shop_cat":{ > "buckets":[{ > "val":"Kontaktlinsen > Torische Linsen", > "count":75168, > "cat_pop":0.0}, > { > "val":"Neu", > "count":31772, > "cat_pop":0.0}, > { > "val":"Gesundheit & Schönheit > Gesundheitspflege", > "count":20281, > "cat_pop":0.0}, > [… more facets omitted] > > > The /query handler is an edismax configuration, though I don’t think this > matters as long as the results include documents with popularity > 0 which is > the case as seen in the facet output (and sum() works in general for all of > the documents just not for the buckets as seen in „all_pop"). > > I will try to explicitly turn off the docValues and add stored=„true“ just to > try out more. If someone has any other suggestions that I should try - I > would be glad to here them. If it is not possible to retrieve the sum in this > way I would have to fetch each sum separately which would be a huge > performance impact. > > Thanks! > Chantal > > > > > >> Am 15.12.2016 um 10:16 schrieb CA <c...@it-agenten.com>: >> >>> num_pop:{query:"popularity:[* TO *]"} >