Я использую гем 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, чтобы обновлять результаты.
Спасибо.