On Jan 3, 2023, at 2:11 AM, Noah Torp-Smith <[email protected]> wrote: > > I have also looked at denormalizing > (https://blog.innoventsolutions.com/innovent-solutions-blog/2018/05/avoid-the-parentchild-trap-tips-and-tricks-for-denormalizing-solr-data.html > > <https://blog.innoventsolutions.com/innovent-solutions-blog/2018/05/avoid-the-parentchild-trap-tips-and-tricks-for-denormalizing-solr-data.html>) > and it helps when doing it for a few child fields. But as said, there are > more properties in the real model than those I have mentioned here, so that > also involves some complications.
I would look at denormalizing (flattening) the schema. That will make things much simpler. A pre-filter on work level fields is just a filter on the work fields in the manifest level objects, easy and fast, plus it gets cached in the filter cache. Sharding will also be straightforward, if needed. I wouldn’t worry about lots of fields. We had a smallish index (150k docs) with 30,000 fields per doc. Only a few fields were searched or used for ranking on each query. It was very fast. You will need to update all the manifest level documents when there is a work level update, but those shouldn’t be frequent. wunder Walter Underwood [email protected] http://observer.wunderwood.org/ (my blog)
