We’ve been running a load test against our index and have noticed that the
facet queries are significantly slower than we would like.
Currently these types of queries are taking several seconds to execute and are
wondering if it would be possible to speed these up.
Repeating the same query over and over does not improve the response time so
does not appear to utilise any caching.
Ideally we would like to be targeting a response time around tens or hundreds
of milliseconds if possible.
An example query that is taking around 2-3 seconds to execute is:
q=*.*
facet=true
facet.field=D_UserRatingGte
facet.mincount=1
facet.limit=-1
rows=0
"response":{"numFound":18979503,"start":0,"maxScore":1.0,"docs":[]}
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"D_UserRatingGte":[
"1575",16614238,
"1576",16614238,
"1577",16614238,
"1578",16065938,
"1579",12079545,
"1580",458799]},
"facet_ranges":{},
"facet_intervals":{},
"facet_heatmaps":{}}}
I have also tried the equivalent query using the JSON Facet API with the same
outcome of slow response time.
Additionally I have tried changing the facet method (on both facet apis) with
the same outcome of slow response time.
The underlying field for the above query is configured as a solr.IntPointField
with docValues, indexed and multiValued set to true.
The index has just under 19 million documents and the physical size on disk is
10.95GB. The index is read-only and consists of 4 segments with 0 deletions.
We’re running standalone Solr 8.3.1 with a 8GB Heap and the underlying Google
Cloud Virtual Machine in our load test environment has 6 vCPUs, 32G RAM and
100GB SSD.
Would anyone be able to point me in a direction to either improve the
performance or understand the current performance is expected?
Kind Regards,
James Bodkin