我在我的问题/答案网站上为apache solr构建了一个搜索引擎,该网站基于pyramid python框架。我正在使用DataImportHandler从mysql db获取solr文档的数据。但是现在我需要在问题或答案发布后立即在python中立即制作文档,即我应该以json格式制作文档并发送给Solr?
我已经阅读了各种API的文档,但只是部分理解了实现。有人可以解释一下如何做到这一点吗? 我打算将文档推入solr也是如此?
提前致谢
答案 0 :(得分:2)
是
如果您正在使用ORM(我猜测SQLAlchemy),请挂钩(before|after)_insert
和(before|after)_update
事件(也可能会删除),以便您可以在更新本地内容时将内容推送到Solr。根据您希望如何在金字塔中设置它,有几个选项 - 您可以添加它使用@reify
装饰器进行配置以允许它通过请求生存,或者您可以直接绑定它在设置时使用SQLAlchemy。
您应该使用现有的Solr库来简化与Solr的对话,我自己的经验很适合mysolr
(因为它不需要对每种可用的Solr类型进行特殊处理),尽管有那里有很多可能的图书馆。在Google上进行搜索,您将找到一系列不同的库。
使用mysolr将内容推送到Solr是直截了当的:
import solr
client = solr.Solr(url)
doc = {
'url': '...',
'store': '...',
'name': '...',
...
}
solr.add(doc)
# or if you have many documents
solr.add_many([doc])