Solr Sunspot-переиндексация объектов не выполняется автоматически
Я использую Sunspot Solr для индексации и поиска в нашем приложении Ruby on Rails с MangoDB база данных (Mongo mapper)
Поиск работает хорошо, но объекты не индексируются автоматически в Solr, когда я делаю изменения в своей базе данных.
Я попробовал вручную индексировать сам класс:
Top.reindex Sunspot.commit
Или, добавил Я, на солнечном пятне.в формате YML : auto_commit_after_request: правда Я также автокоммит с некоторым интервалом на solrconfig.xml:
<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>15000</maxTime>
</autoCommit>
Все эти решения не удалось переиндексировать автоматически мои объекты, если я не переиндексирую все объекты с помощью задачи rake:
bundle exec rake sunspot:reindex
Есть ли другие решения ?
Большое спасибо.
1 ответ:
Sunspot предполагается переиндексировать по умолчанию, если вы используете
Проблема здесь в том, что вы используете Mongo, а не AR. Я нашел драгоценный камень, который объединяетсолнечное пятно иMongo mapper для этих целей. Возможно, вы захотите проверить его и посмотреть, решит ли он вашу проблему с автоиндексацией-gem должен решить ее (проверьте это )ActiveRecord
(проверьте это ).Если это не сработает, вы можете попробовать выполнить ручную индексацию на задействованных моделях., аналогично крючкам ActiveRecord, например, в пользовательской модели:
after_save { |user| Sunspot.index!(user) } after_destroy { User.reindex; Sunspot.commit }