【发布时间】: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