Hi Chris,

I assumed that you apply some sort of fq=price:[100 TO 200] to focus on wanted 
products.

Can you share full json faceting request - numFound:0 suggest that something is 
completely wrong.

Thanks,
Emir
--
Monitoring - Log Management - Alerting - Anomaly Detection
Solr & Elasticsearch Consulting Support Training - http://sematext.com/



> On 13 Nov 2017, at 21:56, ch...@yeeplusplus.com wrote:
> 
> 
> 
> 
> �
> Hi Emir,
> I can't apply filters to the original query because I don't know in advance 
> which filters will meet the criterion I'm looking for.� Unless I'm missing 
> something obvious.�
> �
> I tried the JSON facet you suggested but received
> 
>       "response":{"numFound":0,"start":0,"maxScore":0.0,"docs":[]
> 
>       � },
> 
>       � "facet_counts":{
> 
>       � � "facet_queries":{},
> 
>       � � "facet_fields":{},
> 
>       � � "facet_dates":{},
> 
>       � � "facet_ranges":{},
> 
>       � � "facet_intervals":{},
> 
>       � � "facet_heatmaps":{}},
> 
>       � "facets":{
> 
>       � � "count":0}}
> 
>       �
> 
> �
> 
> 
>> Hi Chris,
> 
>> You mention it returns all manufacturers? Even after you apply filters 
>> (don’t see filter in your example)? You can control how many facets 
>> are returned with facet.limit and you can use face.pivot.mincount to 
>> determine how many facets are returned. If you calculate sum on all
> manufacturers, it can last.
>> 
> 
>> Maybe you can try json faceting. Something like (url style):
> 
>> 
> 
>> …&json.facet={sumByManu:{terms:{field:manufacturer,facet:{sum:”sum(price)”}}}}
> 
>> 
> 
>> HTH,
> 
>> Emir
> 
>> --
> 
>> Monitoring - Log Management - Alerting - Anomaly Detection
> 
>> Solr & Elasticsearch Consulting Support Training - http://sematext.com/
> 
>> 
> 
>> 
> 
>> 
> 
>>> On 12 Nov 2017, at 19:09, ch...@yeeplusplus.com wrote:
> 
>>> 
> 
>>> 
> 
>>> 
> 
>>> 
> 
>>> I have documents in solr that look like this:
> 
>>> {
> 
>>> "id": "acme-1",
> 
>>> "manufacturer": "acme",
> 
>>> "product_name": "Foo",
> 
>>> "price": 3.4
> 
>>> }
> 
>>> 
> 
>>> There are about
> 
>>> 150,000 manufacturers, each of which have between 20,000 and 1,000,000 
>>> products.
> 
>>> I'd like to return the sum of all prices that are in the range [100, 200], 
>>> faceted by manufacturer. In other words, for each manufacturer, sum the 
>>> prices of all products for that manufacturer,
> 
>>> and return the sum and the manufacturer name. For example:
> 
>>> [
> 
>>> {
> 
>>> "manufacturer": "acme",
> 
>>> "sum": 150.5
> 
>>> },
> 
>>> {
> 
>>> "manufacturer": "Johnson,
> 
>>> Inc.",
> 
>>> "sum": 167.0
> 
>>> },
> 
>>> ...
> 
>>> ]
> 
>>> 
> 
>>> I tried this:
> 
>>> q=*:*&rows=0&stats=true&stats.field={!tag=piv1 
>>> sum=true}price&facet=true&facet.pivot={!stats=piv1}manufacturer
> 
>>> which "works" on a test
> 
>>> subset of 1,000 manufacturers. However, there are two problems:
> 
>>> 1) This query returns all the manufacturers, so I have to iterate over the 
>>> entire response object to extract the ones I want.
> 
>>> 2) The query on the whole data set takes more than 600 seconds to return, 
>>> which doesn't fit
> 
>>> our target response time
> 
>>> 
> 
>>> How can I perform this query?
> 
>>> We're using solr version 5.5.5.
> 
>>> 
> 
>>> 
> 
>>> 
> 
>>> Thanks,
> 
>>> Chris
> 
>>> 
> 
>> 
> 
>> 

Reply via email to