在PySolr中验证连接

时间:2014-10-04 21:44:24

标签: 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 -

类型状态报告

消息

description 此请求需要HTTP身份验证()。

Apache Tomcat / 7.0.28

请告知。

2 个答案:

答案 0 :(得分:0)

solr = pysolr.Solr('http://user:pass@IP:8983/solr/')

这就是你所需要的......

答案 1 :(得分:0)

您可以通过Solr身份验证作为Solr连接参数的一部分。

您在pySolr中没有适当的文档来进行认证。由于pySolr内部使用身份验证请求,因此您可以关注authentication in requests. 这是custom authentication as well.

上的一个小例子

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

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

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

这是正确的身份验证方法。不建议将用户名和密码作为URL的一部分传递,因为如果在其中任何一种情况下使用@'都会造成问题,那么可能会导致身份验证出现问题。Refer this GitHub issue