1

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」というエラーが表示されます。

上記の python コードに _id を組み込むにはどうすればよいですか。

ありがとう

4

1 に答える 1

1

Use literal.fieldname to include fieldname to Solr when using extracting handler.

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

Requests can take a params dict like {'commit': 'true', 'field':'this/ ?text may invalidate your url'} and do the job of making it URL-safe.

于 2013-03-28T11:53:16.570 に答える