我從Microsoft Word 97-07文檔(.doc)中提取內容並將它們存儲到Solr中的字段中(爲了顯示突出顯示的上下文片段)。似乎提取的內容沒有正確過濾;許多特殊字符被存儲,而我只想以明文存儲內容。當我打印出來的片段,它看起來是這樣的:從Microsoft 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>
編輯:我忘了提,我使用SOLR 4.4.0附帶提卡1.4
您可能想要查看Apache Tika的依賴關係,並將其升級,否則可能會中斷 – Gagravarr
Tika沒有任何依賴關係,如下所示:https://tika.apache.org/dependencies.html –
Tika擁有絕對的一羣依賴關係,對於其中的很多人來說,請參閱[Tika Parsers Maven pom](https://svn.apache.org/repos/asf/tika/trunk/tika-parsers/pom.xml)。它不依賴任何一個框架或平臺 – Gagravarr