2017-05-22 17 views
0

私は、pdf/docxファイルの大きなフォルダをインデックス作成して検索できるsolrの簡単な設定をしたいと思います。私はたいていフルテキスト検索が必要で、フィールドを区切る必要はなく、元のドキュメントは構造を明確に定義していないようです。Solr pdf index bad request

POSTing file G1504225.pdf (application/pdf) to [base]/extract 
SimplePostTool: WARNING: Solr returned an error #400 (Bad Request) for 
url: http://localhost:8983/solr/gettingstarted/update/extract? 
resource.name=%2Fhome%2Fsolr%2Fsolr-6.5.1%2F..%2Ftrain_data%2FG1504225.pdf&literal.id=%2Fhome%2Fsolr%2Fsolr-6.5.1%2F..%2Ftrain_data%2FG1504225.pdf 
SimplePostTool: WARNING: Response: <?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">400</int><int 
name="QTime">263</int></lst><lst name="error"><lst name="metadata"><str 
name="error-class">org.apache.solr.common.SolrException</str><str 
name="root-error-class">java.lang.NumberFormatException</str><str 
name="error-class">org.apache.solr.update.processor.DistributedUpdateProcessor$DistributedUpdatesAsyncException</str><str name="root-error-class">org.apache.solr.update.processor.DistributedUpdateProcessor$DistributedUpdatesAsyncException</str></lst><str name="msg">Async exception during distributed update: Error from server at http://127.0.1.1:8983/solr/gettingstarted_shard2_replica1: Bad Request 

request: 
http://127.0.1.1:8983/solr/gettingstarted_shard2_replica1/update?update.chain=add-unknown-fields-to-the-schema&amp;update.distrib=TOLEADER&amp;distrib.from=http%3A%2F%2F127.0.1.1%3A8983%2Fsolr%2Fgettingstarted_shard1_replica1%2F&amp;wt=javabin&amp;version=2 
Remote error message: ERROR: [doc=/home/solr/solr-6.5.1/../train_data/G1504225.pdf] Error adding field 'title'='United Nations' msg=For input string: "United Nations"</str><int name="code">400</int></lst> 
</response> 
SimplePostTool: WARNING: IOException while reading response: 
java.io.IOException: Server returned HTTP response code: 400 for URL: 
http://localhost:8983/solr/gettingstarted/update/extract? 
resource.name=%2Fhome%2Fsolr%2Fsolr-6.5.1%2F..%2Ftrain_data%2FG1504225.pdf&literal.id=%2Fhome%2Fsolr%2Fsolr-6.5.1%2F..%2Ftrain_data%2FG1504225.pdf 

ファイルのほとんどは大丈夫です、私はそれらを検索することができます:私は、私はいくつかのpdfファイルをインデックスに自分のフォルダをしようとすると、いくつかのファイルのようなエラーを返し、しかし、簡単ですhttps://lucene.apache.org/solr/quickstart.htmlに従ってください。何か案は?

答えて

0

Solrは、Tikaを使用してこれらのファイルからテキストを抽出します。特別な形式のファイルの中には、独自の形式であり、Tikaが常に辺のケースなどをキャッチしようとしているため、特にPDFの解析が難しいものがあります。あなたはそれを期待する必要があります。

NumberFormatException/pdfboxのhow many instancesが見つかりました(pdfboxは、Tikaがpdfファイル用に使用するライブラリです)。

あなた本当にはerroringでもものは、あなたが特別なフォルダに入れて、別のライブラリを使用してテキストを自分で抽出し、再びそれらを処理することができ、異なるライブラリが異なっていますが、すべてのPDFからすべてのテキストを取得したい場合同じpdfの結果、いくつかのライブラリが生成するテキストのスーパーセットを使うことができます。しかし、Tikaが特定のファイルタイプの特定のライブラリをプラグインできるようにしない限り、このためにいくつかのグルーコードを書く必要があります。

+0

ありがとうございました。実際には失敗したpdfは非常に簡単で、関連するすべてのテキストはpdf2txtで簡単に抽出できます。また、エラーメッセージはpdfからデータを抽出するのではなく、それをsolrに挿入することについて不平を言っていますが、私はここで何かを忘れるかもしれません。とにかく、pdf2txtですべてのpdf-sをtxtに変換してからインデックスを作成するように見えますが、これは私の素早いハックです。 – kakk11