Я пытаюсь настроить solr для использования с postgres db, который я использую через flask sqlalchemy orm. Я нашел библиотеку pysolr для этой цели, но не ясно, как настроить хуки в моделях sqlalchemy для обновления индекса solr. Есть примеры?
pysolr предлагает вставлять документы вручную через solr.add, но неясно, как вы будете разделять индексы для разных таблиц базы данных.
после некоторых исследований я придумал следующий подход, мне интересно, правильно ли это:
в моделях ORM перехватывать after_insert, after_update, after_remove и after_commit и вставлять/обновлять/удалять данные объекта в solr в этих событиях.
для разделения данных разных моделей используйте имя таблицы в качестве префикса в поле «id» документов solr. solr_id = db_table_name + db_id
когда вы выполняете поиск, получаете все результаты, вручную фильтруете те, которые соответствуют требуемой таблице базы данных, извлекаете идентификаторы, выполняете поиск базы данных по этим идентификаторам и используете эти результаты базы данных.
есть ли лучший способ сделать это? Спасибо.