Python 在PySolr中验证连接

Python 在PySolr中验证连接,python,tomcat,solr,pysolr,Python,Tomcat,Solr,Pysolr,这是我第一次使用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 Tom

这是我第一次使用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 请告知

solr = pysolr.Solr('http://user:pass@IP:8983/solr/')
这就是你所需要的


这就是您所需要的一切…

您可以将Solr身份验证作为Solr连接参数的一部分进行传递

您在pySolr中没有关于如何执行身份验证的适当文档。因为pySolr在内部使用身份验证请求,所以您可以遵循 下面是一个关于

对于基本身份验证,您可以将其用作

    solr = pysolr.Solr('http://IP:8983/solr/collection',auth=('username','password'))


这是正确的身份验证方法。不建议将用户名和密码作为URL的一部分进行传递,因为如果在任何URL中使用
@
'
,则可能会产生问题。这些可能会在身份验证中产生问题。

您可以将Solr身份验证作为Solr连接参数的一部分进行传递

您在pySolr中没有关于如何执行身份验证的适当文档。因为pySolr在内部使用身份验证请求,所以您可以遵循 下面是一个关于

对于基本身份验证,您可以将其用作

    solr = pysolr.Solr('http://IP:8983/solr/collection',auth=('username','password'))


这是正确的身份验证方法。不建议将用户名和密码作为URL的一部分进行传递,因为如果在任何URL中使用
@
'
,则可能会产生问题。这些可能会在身份验证中产生问题。

看起来,PySolr中根本没有实现HTTP基本身份验证。有一个,但那已经有好几年了,我怀疑这个公关会不会像那样被合并。嗯,也许我会试着换成solrpy,你推荐其他任何有效的软件包吗?我找到了另一篇关于使用sunburnt的帖子,但是查看他们的API文档,我没有看到关于身份验证的规定。老实说,我实际上会考虑根本不使用集成软件包。非常简单,使用Python模块,使用自定义头(如
授权
)进行HTTP请求、读取状态代码和处理JSON非常简单。所以你最好自己和Solr谈谈,如果需要的话,也许可以编写你自己的小包装器模块。从快速的
grep
来看,solrpy确实实现了HTTP基本身份验证:不客气,祝你好运。如果您发现一种适合自己的方法,请随意将其作为答案发布并自行接受。看起来HTTP基本身份验证并没有在PySolr中实现。有一个,但那已经有好几年了,我怀疑这个公关会不会像那样被合并。嗯,也许我会试着换成solrpy,你推荐其他任何有效的软件包吗?我找到了另一篇关于使用sunburnt的帖子,但是查看他们的API文档,我没有看到关于身份验证的规定。老实说,我实际上会考虑根本不使用集成软件包。非常简单,使用Python模块,使用自定义头(如
授权
)进行HTTP请求、读取状态代码和处理JSON非常简单。所以你最好自己和Solr谈谈,如果需要的话,也许可以编写你自己的小包装器模块。从快速的
grep
来看,solrpy确实实现了HTTP基本身份验证:不客气,祝你好运。如果你找到了一个适合你的方法,请随意将其作为一个答案发布并自我接受。