2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個贊
在 OP 提出問題后更新:
EmbeddedDocumentExtractor
我知道您在開始提問時已經(jīng)在制作一個實(shí)現(xiàn) tika's 的自定義類:
“關(guān)于創(chuàng)建自定義 EmbeddedDocumentExtractor 類,”
所以看看 tika github 我看到這EmbeddedDocumentExtractor
是一個由名為 的類實(shí)現(xiàn)的接口ParsingEmbeddedDocumentExtractor
,它有一個具體的方法parseEmbedded
。我假設(shè)這是您要使用的方法,但限制為n。
我建議您創(chuàng)建一個自定義類來實(shí)現(xiàn)EmbeddedDocumentExtractor
并繼承自ParsingEmbeddedDocumentExtractor
. 在這個類中,您定義了一個名為 COUNT_LIMIT 的變量。然后重寫 parseEmbedded 方法來執(zhí)行以下操作:
分離 InputStream 中的文件
將這些分離的文件放在使用限制的for循環(huán)中
在每個文件上調(diào)用父方法。
所以它看起來像這樣:
class MyEmbeddedDocumentExtractor implements EmbeddedDocumentExtractor extends ParsingEmbeddedDocumentExtractor{
private static int COUNT_LIMIT = 10;
...
@Override parseEmbedded(
InputStream stream, ContentHandler handler, Metadata metadata, boolean outputHtml)
throws SAXException, IOException {
// separate the files in the InputStream
for(int i = 0; i < COUNT_LIMIT; i++){
super.parseEmbedded(streamOfOneFile, handler, metadata, outputHtml)
}
}
}

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個贊
根據(jù)您的需要,也許可以嘗試 RecursiveParserWrapper;您可以在 RecursiveParserWrapperHandler 中設(shè)置最大嵌入深度。
添加回答
舉報