1-
studentId has docValue = true . it is of type double which is <fieldType
name="double" class="solr.TrieDoubleField" indexed="false" stored="true"
docValues="true" multiValued="false" required="false"/>
2- If we just facet without aggregation it finishes in good time 60ms:
json.facet={
studentId:{
type:terms,
limit:-1,
field:" studentId "
}
}
Thanks
-----Original Message-----
From: Vijay Tiwary [mailto:[email protected]]
Sent: Sunday, April 30, 2017 10:44 AM
To: [email protected]
Subject: RE: JSON facet performance for aggregations
Please enable doc values and try.
There is a bug in the source code which causes json facet on string field to
run very slow. On numeric fields it runs fine with doc value enabled.
On Apr 30, 2017 1:41 PM, "Mikhail Ibraheem" <[email protected]>
wrote:
> Hi Vijay,
> It is already numeric field.
> It is huge difference between json and flat here. Do you know the
> reason for this? Is there a way to improve it ?
>
> -----Original Message-----
> From: Vijay Tiwary [mailto:[email protected]]
> Sent: Sunday, April 30, 2017 9:58 AM
> To: [email protected]
> Subject: Re: JSON facet performance for aggregations
>
> Json facet on string fields run lot slower than on numeric fields. Try
> and see if you can represent studentid as a numeric field.
>
> On Apr 30, 2017 1:19 PM, "Mikhail Ibraheem"
> <[email protected]>
> wrote:
>
> > Hi,
> >
> > I am trying to do aggregation with JSON faceting but performance is
> > very bad for one of the requests:
> >
> > json.facet={
> >
> > studentId:{
> >
> > type:terms,
> >
> > limit:-1,
> >
> > field:"studentId",
> >
> > facet:{
> >
> > x:"sum(grades)"
> >
> > }
> >
> > }
> >
> > }
> >
> >
> >
> > This request finishes in 250 seconds, and we can't paginate for this
> > service for functional reason so we have to use limit:-1, and the
> > cardinality of the studentId is 7500.
> >
> >
> >
> > If I try the same with flat facet it finishes in 3 seconds :
> > stats=true&facet=true&stats.field={!tag=piv1
> > sum=true}grades&facet.pivot={!stats=piv1}studentId
> >
> >
> >
> > We are hoping to use one approach json or flat for all our services.
> > JSON facet performance is better for many case.
> >
> >
> >
> > Please advise on why the performance for this is so bad and if we
> > can improve it. Also what is the default algorithm used for json facet.
> >
> >
> >
> > Thanks
> >
> > Mikhail
> >
>