这是我第一次使用Python和Solr。我在GCE上的tomcat中设置了我的Solr实例。我试图使用PySolr从我的Python代码连接到它。但是,我不知道如何通过PySolr发送身份验证参数。
这是我得到的例外:
solr = pysolr.Solr('http://MY INSTANCE IP/solr/News', timeout=10)
Apache Tomcat / 7.0.28 - 错误报告类型状态报告
消息
description 此请求需要HTTP身份验证()。
请告知。
答案 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