Как работает автопрогрев Solr и различные механизмы кэширования?

Как работает автопрогрев Solr и различные механизмы кэширования?

Я прочитал о тайниках и утеплении, и у меня осталась куча вопросов.

Google привел меня сюда:https://solr.apache.org/guide/7_3/query-settings-in-solrconfig.html

Хотя последняя версия, кажется, здесь:https://solr.apache.org/guide/solr/latest/configuration-guide/caches-warming.html

Прочитав эту документацию, у меня возник ряд вопросов, перечислю их здесь. Но главный вопрос касается автопрогрева.

1/ Я вижу упоминание о «Поисковике индексов», который может иметь экземпляры, имеющие время жизни, и эти экземпляры затем имеют кэши.

Должен ли я понимать, что процесс создания новых и аннулирования старых означает, что "экземпляры" относятся к тому факту, что могут быть старые экземпляры, обслуживающие старые данные, пока строится новый? И не может ли быть несколько поисковиков индекса для ядра одновременно?

2/ Как все это работает с точки зрения аннулирования кэша? Является ли кэш по сути поисковиком, и если один кэш становится недействительным, поисковик должен быть создан заново вместе со всеми его остальными кэшами?

3/ Я читаю, что авторазогрев в основном берет кучу записей из старого экземпляра Index Searcher и добавляет их в новый экземпляр. Есть ли какая-то гарантия того, что эти скопированные записи все еще действительны? То есть: если кэш больше недействителен из-за какой-то фиксации, которая может включать изменения для определенных документов или результатов запроса... есть ли механизм, гарантирующий, что мы избежим копирования старых записей, содержащих документы/результаты, основанные на устаревшем материале?

4/ Я вижу примеры кэшей, использующих числа вроде 512 записей. Это кажется низким. Какие соображения здесь следует учитывать? Перестраиваются ли кэши очень часто из-за необходимости создания новых поисковиков индекса, и, таким образом, бессмысленно постоянно создавать большие объекты, которые затем часто оставляются и перестраиваются? Или что-то еще?

5/ Предположим, у вас есть приложение, которое создает документы и выполняет запросы на основе сгенерированных приложением идентификаторов пользователей. И у меня есть 1 ядро/коллекция "user_documents", и все это попадает туда, причем "user id" является полем. В этом сценарии кажется, что действие 1 пользователя может сделать кэш недействительным для всех пользователей. Как этого избежать?

6/ Что касается filtercaches, я читаю, что самая старая запись кэша LRU заменяется на новые wholes. Поскольку filtercaches записи истории для каждого "fq" запроса, может ли случиться так, что длинный запрос выталкивается из кэша, но только некоторые из его fq, а не другие? Это плохо?

7/ Для кэша документов я вижу строку:

Размер documentCache всегда должен быть больше max_results.

умножается на max_concurrent_queries, чтобы гарантировать, что Solr не придется повторно загружать документ во время запроса.

Каковы последствия этого? Я не могу найти документацию по max_results и max_concurrent_queries как именам для настроек.

Спасибо всем, кто уделяет этому свое время.

Связанный контент