我遇到了使用urllib2通过python将PDF文件发布到SOLR的问题。我正在尝试的代码如下
import urllib2
with open('key.pdf', 'rb') as data_file:
my_data = data_file.read()
req = urllib2.Request(url='http:// localhost:8983/solr/update/pdf?commit=true',data=my_data)
req.add_header('Content-type', 'application/pdf')
f = urllib2.urlopen(req)
我收到错误的HTTP 404错误代码。
但是我能够成功发布使用此命令:
http:// localhost:8983/solr/update/extract?literal._id=doc2 -Dtype=application/pdf -jar post.jar key.pdf
你可以告诉我我正在做的错误吗?对于上面的命令,我已经配置了SOLR提取处理程序。
进一步改变如下
import urllib2
with open('key.pdf', 'rb') as data_file:
my_data = data_file.read()
req = urllib2.Request(url='http ://localhost:8983/solr/update/extract?commit=true',data=my_data)
req.add_header('Content-type', 'application/pdf')
f = urllib2.urlopen(req)
我现在收到HTTP 400错误,并且在SOLR登录中可以看到错误“文档缺少mandaotory uniquekey字段:_id”
如何将_id与上面的python代码合并。如果是这样的话?
由于
答案 0 :(得分:1)
使用提取处理程序时,使用literal.fieldname
将fieldname
包括在Solr中。
http://wiki.apache.org/solr/ExtractingRequestHandler#Literals
Requests可以使用params
这样的{'commit': 'true', 'field':'this/ ?text may invalidate your url'}
dict,并且可以确保网址安全。