使用solr / pysolr with flask sqlalchemy

时间:2014-02-18 05:51:36

标签: solr sqlalchemy flask flask-sqlalchemy pysolr

我正在尝试设置solr以与postgres db一起使用,我通过flask sqlalchemy orm使用它。我找到了库pysolr,但目前还不清楚如何在sqlalchemy模型中设置钩子来更新solr索引。有没有例子?

pysolr建议通过solr.add手动插入文档,但不清楚如何为不同的数据库表分隔索引。

在做了一些研究后,我提出了以下方法,我想知道这是否正确:

    在ORM模型中,
  1. 挂钩after_insert,after_update,after_remove和after_commit,并在这些事件中插入/更新/删除solr中的对象数据。

  2. 分离不同模型的数据使用表名作为solr文档的“id”字段中的前缀。 solr_id = db_table_name + db_id

  3. 进行搜索时,获取所有结果,手动过滤那些与所需的db表匹配的结果,提取ID,根据这些ID查找数据库并使用这些数据结果。

  4. 有更好的方法来做这件事吗?感谢。

1 个答案:

答案 0 :(得分:0)

SQLAlchemySolr是不同的结构。我认为更好的解决方案是实现一个脚本来同步数据。运行脚本以更新新数据可能需要30分钟或一小时。

模型中的绑定插入/更新/删除/提交机制不是好方法。因为如果您的Solr服务有任何问题,您的网站(关于访问数据库)将受到影响。保持差异化服务的独立性。