【发布时间】:2014-10-04 21:44:24
【问题描述】:
这是我第一次使用 Python 和 Solr。我在 GCE 上的 tomcat 中设置了我的 Solr 实例。我正在尝试使用 PySolr 从我的 Python 代码连接到它。但是,我不确定如何通过 PySolr 发送身份验证参数。
这是我得到的例外:
solr = pysolr.Solr('http://MY INSTANCE IP/solr/News', timeout=10)
Apache Tomcat/7.0.28 - 错误报告 HTTP 状态 401 -
类型状态报告
消息
说明这个请求需要HTTP认证()。
Apache Tomcat/7.0.28
请指教。
【问题讨论】:
-
看起来 HTTP 基本身份验证根本没有在 PySolr 中实现。有一个outstanding pull request,但那已经有好几年了,我怀疑这个 PR 是否会像那样合并。
-
嗯,我可能会尝试切换到 solrpy,您是否推荐任何其他运行良好的软件包?我发现了另一篇关于使用 sunburnt 的帖子,但是查看他们的 API 文档,我没有看到关于身份验证的规定。 stackoverflow.com/questions/6466188/…
-
老实说,我实际上会考虑根本不使用集成包。 Solr's JSON API 非常简单,使用 Python
requests模块,使用自定义标头(如Authorization)发出 HTTP 请求、读取状态代码和处理 JSON 非常简单。因此,您最好自己与 Solr 交谈,如有必要,也可以编写自己的小包装模块。 -
从
grep看来,solrpy确实实现了 HTTP 基本身份验证:solr/core.py:426 -
不客气,祝你好运。如果您找到适合自己的方法,请随时将其发布为答案并自我接受。