【问题标题】:Apache Tika and character limit when parsing documents解析文档时的 Apache Tika 和字符限制
【发布时间】:2011-09-02 22:26:59
【问题描述】:

有人可以帮我解决吗?

这样就可以了

   Tika tika = new Tika();
   tika.setMaxStringLength(10*1024*1024);

但是如果你不直接使用 Tika,像这样:

ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();

ParseContext ps = new ParseContext();
for (InputStream is : getInputStreams()) {
    parser.parse(is, textHandler, metadata, ps);
    is.close();
    System.out.println("Title: " + metadata.get("title"));
    System.out.println("Author: " + metadata.get("Author"));
}

没有办法设置它,因为您不与WriteOutContentHandler 交互。顺便说一句,默认情况下它设置为-1,这意味着没有限制。但最终的限制是 100000 个字符。

/**
 * The maximum number of characters to write to the character stream.
 * Set to -1 for no limit.
 */
private final int writeLimit;

/**
 * Number of characters written so far.
 */
private int writeCount = 0;

private WriteOutContentHandler(Writer writer, int writeLimit) {
    this.writer = writer;
    this.writeLimit = writeLimit;
}

/**
 * Creates a content handler that writes character events to
 * the given writer.
 *
 * @param writer writer
 */
public WriteOutContentHandler(Writer writer) {
    this(writer, -1);
}

【问题讨论】:

    标签: java text-processing apache-tika


    【解决方案1】:

    您一定忽略了内容处理程序具有带有 writelimit 的构造函数。

    ContentHandler textHandler = new BodyContentHandler(int writeLimit);
    

    【讨论】:

    • 注意 -1 是无限字符!
    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-05-07
    相关资源
    最近更新 更多