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 4

1 ответ:

Sunspot предполагается переиндексировать по умолчанию, если вы используете ActiveRecord (проверьте это ).

Проблема здесь в том, что вы используете Mongo, а не AR. Я нашел драгоценный камень, который объединяетсолнечное пятно иMongo mapper для этих целей. Возможно, вы захотите проверить его и посмотреть, решит ли он вашу проблему с автоиндексацией-gem должен решить ее (проверьте это )

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

after_save { |user| Sunspot.index!(user) }
after_destroy { User.reindex; Sunspot.commit }