通过python将PDF文件发布到SOLR

时间:2013-03-28 09:38:58

标签: python pdf post solr

我遇到了使用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代码合并。如果是这样的话?

由于

1 个答案:

答案 0 :(得分:1)

使用提取处理程序时,使用literal.fieldnamefieldname包括在Solr中。

http://wiki.apache.org/solr/ExtractingRequestHandler#Literals

Requests可以使用params这样的{'commit': 'true', 'field':'this/ ?text may invalidate your url'} dict,并且可以确保网址安全。