Можно ли заранее кешировать запросы? - PullRequest
0 голосов
/ 04 февраля 2019

В моей системе у меня есть пул сложных запросов, которые я хотел бы предложить пользователю.Пользователь может использовать мои варианты или вводить собственные запросы.Может ли solr кешировать мои варианты запросов заранее, когда он строит индекс?

1 Ответ

0 голосов
/ 04 февраля 2019

Во время построения индексов в Solr нет теплого кэша, однако есть функция, называемая прослушивателями, связанными с запросами , с помощью которых вы можете прогреть поисковики индексов во время их запуска.

Существует два типа событий - firstSearcher (это обычно происходит при запуске Solr) и newSearcher, которые запускаются при подготовке нового поисковика (одним из примеров такого события может быть жесткая фиксация)

Часть в solrconfig.xml может выглядеть следующим образом:

<listener event="newSearcher" class="solr.QuerySenderListener">
  <arr name="queries">
  <!-- 
    <lst><str name="q">solr</str><str name="sort">price asc</str></lst>

   -->
  </arr>
</listener>

<listener event="firstSearcher" class="solr.QuerySenderListener">
  <arr name="queries">
    <lst><str name="q">static firstSearcher warming in solrconfig.xml</str></lst>
  </arr>
</listener>

Что вам нужно сделать - это перечислить ваши тяжелые запросы, чтобы они были подогреты перед обслуживанием поисковых запросов.Это должно ускорить поиск в дальнейшем.

Не забывайте обычные правила правильного использования фильтра, так что FilterCache также будет заполнен правильно.

...