Initial data:
Doc count: 1793026
Field: "product_type", point int, indexed true, stored false,
docvalues true. Values:
"facet_fields":{
"product_type":["3",1069282,"2",710042,"1",13702]
},
Single shard, single instance.
# ./hey_linux_amd64 -n 10000 -c 10 -T "application/json"
'http://localhost:8983/solr/XXX/select?fl=product_id&wt=json&q=product_type:"1"&start=0&rows=51'
Summary:
Total: 0.6374 secs
Slowest: 0.0043 secs
Fastest: 0.0003 secs
Average: 0.0006 secs
Requests/sec: 15688.5755
# ./hey_linux_amd64 -n 10000 -c 10 -T "application/json"
'http://localhost:8983/solr/XXX/select?fl=product_id&wt=json&q=product_type:"1"&start=0&rows=50'
Summary:
Total: 101.3246 secs
Slowest: 0.2048 secs
Fastest: 0.0564 secs
Average: 0.1007 secs
Requests/sec: 98.6927
1) I've already played with queryResultWindowSize and
queryResultMaxDocsCached by setting different, high and low values and
this is probably not what I'm looking for since it gave a <few
milliseconds difference in query performance
2) Checked on different versions of solr (9.6.1 and 8.7.0) - no
significant changes
3) Tried changing the field type to string - zero performance changes
4) In both cases I see successful lookups in queryResultCache
5) Enabling documentCache solves the problem in this case (rows<=50),
but introduces many other performance issues so it doesn't seem like a
viable option.