2014-02-21 35 views
2

我從Microsoft Word 97-07文檔(.doc)中提取內容並將它們存儲到Solr中的字段中(爲了顯示突出顯示的上下文片段)。似乎提取的內容沒有正確過濾;許多特殊字符被存儲,而我只想以明文存儲內容。當我打印出來的片段,它看起來是這樣的:從Microsoft Word文檔中提取內容時存儲的特殊字符(.doc)

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> 

編輯:我忘了提,我使用SOLR 4.4.0附帶提卡1.4

回答

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。它似乎迄今爲止工作完美無瑕。

+1

您可能想要查看Apache Tika的依賴關係,並將其升級,否則可能會中斷 – Gagravarr

+0

Tika沒有任何依賴關係,如下所示:https://tika.apache.org/dependencies.html –

+1

Tika擁有絕對的一羣依賴關係,對於其中的很多人來說,請參閱[Tika Parsers Maven pom](https://svn.apache.org/repos/asf/tika/trunk/tika-parsers/pom.xml)。它不依賴任何一個框架或平臺 – Gagravarr