Hi folks,
We are having a strange issue with our index master_search.
We have several attributes for faceting and the main one is “modelType”. There are 8 possibilities for this facet.
However when loading our application it is frequent that we see only 3 or 4 of those possibilities (the “limit” variable in the refinement list React widget is set to 8). But some days there are all displayed without any change in the configuration or application code base.
After reading this section : Why are my facet and hit counts not accurate? | Configuration & Relevance FAQ | Docs Algolia it appears that Algolia does an approximation when the search query is too complex (= reach the timeout which is 50ms I believe).
Indeed our queries were returning : exhaustiveFacetsCount:
and exhaustiveNbHits
as false for most of our tries
Following this article we made some tests :
- we have reduced the numbers of
searchableAttributes
from 30+ to 6 - we have reduced the numbers of
attributesForFaceting
from 40+ to 10
We directly changed the index configuration on algolia dashboard, waited for the index to be properly updated (I can confirm since I was not seeing some facets on the app anymore) and ran some search in our app interface.
This didn’t change anything basically. We still got exhaustiveFacetsCount:
and exhaustiveNbHits
as false most of the times and some missing facets types
I believe I’m missing something in the big picture, therefore I have several questions :
- Is there some sort of cache that could prevent the changes we made to the index to be reflected in the query complexity (I kind of doubt it, as the RefinementList in our app seemed to have the latest data)
- Is there a magic number we should aim to reach for
processingTimeMS
like the timeout mentioned above ? - Are there any others obvious config that could add hidden complexity to the query ?
- We tried to test the query from the browser tab in algolia dashboard and through our application. The results seem to differ quite a lot.
processingTimeMS
is roughly 20ms on the dashboard while 50/100 ms through our app (using react instantsearch), any explanation - since the doc specifically mentions that processingTimeMS excludes network time ? - Any other ideas
?
Bottom line we can deal with not exact count displaying approximation, but we would definitely need all facets to be present as they are basically the categories displayed to the user.
Any help would be greatly appreciated,
Thanks a lot, your product rock guys.