我想安裝solr與postgres db,我通過燒瓶sqlalchemy orm使用。我爲此目的找到了庫pysolr,但是不清楚如何在sqlalchemy模型中設置鉤子來更新solr索引。有沒有例子?使用solr/pysolr與燒瓶sqlalchemy
pysolr建議通過solr.add手動插入文檔,但不清楚如何分隔不同數據庫表的索引。
做一些研究後,我想出了下面的方法,我想知道如果這是要走正道:
- 在ORM模型
,鉤after_insert,after_update,after_remove和after_commit和插入/在這些事件中更新/刪除solr中的對象數據。
要分離不同模型的數據,請在solr文檔的「id」字段中使用表名作爲前綴。當您執行搜索時,獲取所有結果,手動過濾匹配所需數據庫表的那些數據,提取ID,查找針對這些ID的數據庫並使用這些數據庫結果。
有沒有更好的方法來做到這一點?謝謝。
我正計劃在模型事件上觸發芹菜任務,以保持兩項服務有點遠。我也可以嘗試使用單獨的腳本。你能評論一下屬於不同表格的數據分離嗎? –
嗯...是的。使用芹菜也是一個很好的解決方案。 :) –
將數據添加到Solr時,它將成爲搜索的文檔結構。如果需要搜索,我認爲您可以根據您的需求從不同的表中獲取任何數據。 –