我正在尝试将 solr 设置为与我通过烧瓶 sqlalchemy orm 使用的 postgres db 一起使用。我为此目的找到了库 pysolr,但不清楚如何在 sqlalchemy 模型中设置挂钩以更新 solr 索引。有没有例子?
pysolr 建议通过 solr.add 手动插入文档,但不清楚如何分隔不同数据库表的索引。
在做了一些研究之后,我想出了以下方法,我想知道这是否是正确的方法:
在 ORM 模型中,挂钩 after_insert、after_update、after_remove 和 after_commit 并在这些事件中插入/更新/删除 solr 中的对象数据。
为了分离不同模型的数据,在 solr 文档的“id”字段中使用表名作为前缀。solr_id = db_table_name + db_id
当您进行搜索时,获取所有结果,手动过滤与所需 db 表匹配的那些,提取 id,根据这些 id 查找 db 并使用这些 db 结果。
有没有更好的方法来做到这一点?谢谢。