2011-06-16 29 views
0

我需要索引用戶上傳的doc/docx/pdf文件的內容,並使用Solr(1.4.1)ExtractingRequestHandler組件(817165)。如果這很重要,我不會請求索引 - 該組件總是通過extractOnly參數返回文檔的文本內容,而不是直接將其添加到索引(然後將內容添加到索引「外部「作爲文件的文本字段,遵循標準程序)。Solr Cell/ExtractingRequestHandler無法解析某些* .doc文件

但是,某些文件未被解析,並且該組件返回500內部服務器錯誤,但未提供其他詳細信息。在我們的用戶提交的所有* .doc文件中,大約有30%的文件無法解析。

這不是Solr加載的問題 - 如果您一次又一次解析它們的相同列表,那麼無法解析的文件總是相同的。這也與他們的規模無關 - 他們中的許多人比其他人成功解析的人少。顯然,這不是特殊的格式化(或者至少不是那麼明顯) - 幾乎所有無法解析的文檔都有彩色字體,表格和圖像,但成功解析的許多文檔也具有相同的格式。

所有這些文件在Word中打開,沒有任何警告或錯誤。如果將它們保存爲docx,Solr會開始正確解析它們,但將它們重新保存爲具有相同內容的相同文檔格式不會有幫助。儘管如此,如果所有的內容都被刪除並由一些lorem ipsum文本取代,然後保存爲doc,它們會變得正確。

由於內容替換有所幫助,它應該與文檔中使用的某些元素相關,但沒有關於Tika Formats頁面的說明,告訴您在哪些情況下解析文檔失敗。

我已經上傳了sample file,如果有人足夠好奇地嘗試它(它被存檔以防止Windows Live將其轉換爲「在線文檔」),則無法解析。

目前,作爲一種解決方法,我使用古老的antiword實用程序來分析Solr失敗的* .doc(以及反義詞完美解析它們)。不過,這顯然是一個柺杖,我想知道是否有其他人面臨同樣的問題 - 我沒有谷歌它可能是我做錯了什麼。或者,如果這是一個已知的問題,有什麼可能是更優雅的方式來解決它(我不喜歡依賴反義詞)?

+0

你可以從Tika發佈一個問題文件的堆棧跟蹤? – Gagravarr 2011-06-16 10:31:16

+0

對不起,但我意識到我不知道在哪裏記錄。我搜索整個日誌子文件夾,包含「ExtractingRequestHandler」子字符串的唯一記錄是關於正在加載的組件。顯然日誌記錄沒有打開,你能給我一個線索嗎? – Yuriy 2011-06-16 14:11:37

回答

0

我會嘗試升級提卡如果我是你

我已經採取了你的示例文件,並與提卡的最新版本,試了一下。提取文字工作得很好,我看到

LOREM IPSUM 
Lorem ipsum dolor sit amet 
------ 

Home Phone:   000000000 

Work : 00000000   

(ETC)

所以我懷疑這是與舊版本的POI +提卡的這已得到修復的問題。 (如果你使用的是SOLR的定製版本,那麼你可能只需要在pom中修改Tika依賴並重新構建,maven會爲你處理它,否則更新的SOLR應該有一個更新的Tika作爲標準)

+0

我正在使用solr-cell-1.4.1.jar,因爲我使用的是solr 1.4。1核心與SOLR-236(https://issues.apache.org/jira/browse/SOLR-236)修補添加字段崩潰這是我必不可少的。我想,因爲這個原因,我不能使用solr-cell-3.2.jar,或者我可以嗎? – Yuriy 2011-06-16 22:30:40

+0

從我不知道,對不起!我很瞭解Tika,Solr更少... – Gagravarr 2011-06-17 00:44:38

+0

我試圖使用3.2庫,在整個事件崩潰之前,它對一些文件產生了更精確的結果,有些文件還沒有被解析。我會和你一起玩,如果有效的話肯定會打你的答案。謝謝! – Yuriy 2011-06-17 08:44:30