【问题标题】:Special Characters Stored When Extracting Content From Microsoft Word Documents (.doc)从 Microsoft Word 文档 (.doc) 中提取内容时存储的特殊字符
【发布时间】:2014-02-25 16:10:59
【问题描述】:

我正在从 Microsoft Word 97-07 文档 (.doc) 中提取内容并将它们存储到 Solr 中的一个字段中(以便显示上下文 sn-ps 以突出显示)。似乎提取的内容没有正确过滤;存储了很多特殊字符,而我只想以明文形式存储内容。当我打印出 sn-ps 时,它看起来像这样:

有没有办法过滤掉/去除特殊字符?如果能够删除原来是函数名称的文本,例如NUMPAGES,这也很好——但不是必须的。

我使用了以下 ExtractingRequestHandler:

<requestHandler name="/update/extract" class="solr.extraction.ExtractingRequestHandler">
  <lst name="defaults">
    <str name="lowernames">true</str>
    <str name="uprefix">ignored_</str>

    <!-- capture link hrefs but ignore div attributes -->
    <str name="captureAttr">true</str>
    <str name="fmap.a">links</str>
    <str name="fmap.div">ignored_</str>
  </lst>
</requestHandler>

RequestHandler 通过 SolrJ 使用,带有以下参数:

up.setParam("fmap.content", "file_content");
up.setParam("fmap.title", "title_text");

file_content 字段定义如下:

<field name="file_content" type="text_printable" stored="true"/>

虽然我不认为字段类型很重要(因为它没有被索引)但我还是把它放在这里:

<fieldType name="text_printable" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ScandinavianFoldingFilterFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ScandinavianFoldingFilterFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  </analyzer>
</fieldType>

编辑:我忘了提到我正在使用 Tika 1.4 附带的 SOLR 4.4.0

【问题讨论】:

    标签: solr lucene ms-word apache-tika


    【解决方案1】:

    事实证明这是在Tika 1.5部分修复的。

    我说部分固定,因为目录中还有一些与动态页码相关的特殊字符。

    据 Freenode 上#solr 的好心人说,Apache Tika 1.5 应该与 Solr 4.8.0 打包在一起。作为 4.8.0 发布之前的临时修复,我只是下载了 Tika 1.5 并将 tika-core-1.5.jartika-parsers-1.5.jar 放在 Solr 的 contrib/extraction/lib 目录中。我还必须删除旧文件,即tika-core-1.4.jartika-parsers-1.4.jar。到目前为止,它似乎完美无缺。

    【讨论】:

    • 您可能需要查看 Apache Tika 的依赖关系,并升级它们,否则事情可能会中断
    • Tika 没有任何依赖,好像是:tika.apache.org/dependencies.html
    • Tika 有大量的依赖项,请参阅Tika Parsers Maven pom 了解其中的许多项。它不依赖于任何一个框架或平台
    猜你喜欢
    • 2022-06-23
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 2011-11-17
    • 2015-03-26
    相关资源
    最近更新 更多