2012-03-04 71 views
1

我的使用情況是指數2檔:元數據文件和二進制PDF文件爲一個唯一的ID Solr的。元數據文件具有XML文件形式的內容,並且一些模式字段被映射到該XML文件中的元素。索引多個文檔和映射到獨特的Solr ID

我做的:從PDF文件中提取內容(使用pdftotext),過程,內容和檢索特定信息(例如:PDF的第一頁/行大約有醫藥,研究階段的信息)。檢索到的信息(醫學/研究階段)需要進行索引,並且應該能夠搜索/排序/方面。

我可以創建檢索信息的XML文件(讓我們稱之爲這是元數據文件)。現在假設我的架構將是

<field name="medicine" type="text" stored="true" indexed="true"/> 
<field name="researchStage". ../> 

有沒有把這個元數據文件和Solr的PDF文件的方法嗎?

我曾嘗試:

  1. 基於對檔案的建議,我拉上這些文件,並給了ExtractRequestHandler。我能夠將所有內容放入SOLR並使其可搜索。但它顯示爲壓縮文件的內容(我必須在Solr代碼庫中應用一些補丁才能完成此工作)。但是這並不足夠,因爲元數據文件中的內容未映射到字段名稱。 捲曲的 「http://本地主機:8983/Solr的/更新/提取literal.id = DOC1 &提交=真正的」 F 「[email protected]

  2. 我試着用DataImportHandler工作(binURLdatasource )。但我不認爲我理解它是如何工作的。所以不能走得太遠。

  3. 我想添加元數據標籤PDF本身。爲此,ExtractrequestHandler應該處理這個元數據。我也不確定。 所以我嘗試了「pdftk」來添加元數據。無法爲其添加自定義標籤。它只更新/添加標題/作者/關鍵字等。有誰知道類似的unix工具。

如果有人有提示,請分享。 我想避免創建1個文件(通過合併PDF文本+元數據文件)。

+0

您的意思是您想要使用Solr爲PDF文件建立索引,或者您確實需要Solr索引中PDF文件的*內容*? – 2012-03-04 21:19:19

回答

1

給定文件record1234.pdf和元數據,如:

<metadata> 
<field1>value1</field1> 
<field2>value2</field2> 
<field3>value3</field3> 
</metadata> 

做的

curl "http://localhost:8983/solr/update/extract? 
literal.id=record1234.pdf 
&literal.field1=value1 
&literal.field2=value2 
&literal.field3=value3 
&captureAttr=true&defaultField=text&capture=div&fmap.div=foo_txt&boost.foo_txt=3&" -F "[email protected]" 

的方案相當於從http://wiki.apache.org/solr/ExtractingRequestHandler#Literals改編。

這將創建一個包含從提卡/ Solr的CEL text輸出的索引,以及您指定的字段創建新條目。

你應該能夠在你喜歡的語言執行這些操作。


在元數據文件中的內容沒有被映射到字段名

如果他們不映射到一個預定義的字段,然後使用動態字段。例如,您可以將*_i設置爲整數字段。

我想避免創建1個文件(通過合併PDF文本+元數據文件)。

看起來像程序員的疲勞:-)但是,你有一個很好的理由嗎?