从Microsoft Word文档中提取内容时存储的特殊字符(.doc)

时间:2014-02-21 08:24:36

标签: solr lucene ms-word apache-tika

我正在从Microsoft Word 97-07文档(.doc)中提取内容并将它们存储到Solr中的字段中(以显示用于突出显示的上下文片段)。似乎提取的内容未被正确过滤;存储了很多特殊字符,而我只想以纯文本格式存储内容。当我打印出这些片段时,它看起来像这样:

Context Snippets From Ms Word .doc

有没有办法过滤/删除特殊字符?能够删除原来也是函数名的文本也很好 - 但不是必须的 - 例如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

1 个答案:

答案 0 :(得分:1)

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

This is what it looks like now

我说部分修复了,因为目录中仍然存在一些与动态页面编号相关的特殊字符。

根据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。到目前为止似乎完美无缺。