使用json在python中索引文档

时间:2014-07-18 12:03:11

标签: json solr

我在我的问题/答案网站上为apache solr构建了一个搜索引擎,该网站基于pyramid python框架。我正在使用DataImportHandler从mysql db获取solr文档的数据。但是现在我需要在问题或答案发布后立即在python中立即制作文档,即我应该以json格式制作文档并发送给Solr?

我已经阅读了各种API的文档,但只是部分理解了实现。有人可以解释一下如何做到这一点吗? 我打算将文档推入solr也是如此?

提前致谢

1 个答案:

答案 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])