Rails Sunspot / Solr Index не синхронизирован - PullRequest
0 голосов
/ 16 ноября 2018

Я использую гем sunspot-rails для поиска и фильтрации, но сталкиваюсь с проблемами, когда запросы Solr не возвращают правильные результаты. Например, скажем, я хочу получить все записи модели с state == Processing, и я делаю следующий поиск по солнечному пятну:

MyModel.search do
    # pagination and ordering stuff
    ...
    with('state', 'Processing')
    ...
end

В большинстве случаев это возвращает правильные результаты. Иногда (и пока только на производстве, я не могу продублировать проблему локально), запрос будет возвращать записи с state == In Review. Если я делаю обычную ActiveRecord MyModel.where(state: 'Processing'), я всегда получаю правильные результаты.

Я подумал, что это может быть связано с моим файлом solrconfig.yml, но изменение этих параметров, похоже, ничего не изменило. Соответствующая часть этого файла:

<autoCommit>
   <maxTime>15000</maxTime>
   <maxDocs>1000</maxDocs>
   <openSearcher>true</openSearcher>
 </autoCommit>

<autoSoftCommit>
   <maxTime>5000</maxTime>
 </autoSoftCommit>

У кого-нибудь есть указания, почему изменения в моей БД не отражаются в индексе Solr, или как я могу отлаживать / регистрировать происходящее? Это на маленьком внутреннем приложении с около 100 пользователями или около того. Мне не нужно ежедневно переиндексировать Solr, чтобы обновлять результаты.

Спасибо.

...