2012-02-23 160 views
0

我有一個XML文檔,我想索引它到一個Lucene索引。 即從XML創建Lucene文檔

<hello> 
    <world>hi</world> 
</hello> 

我希望有一個字段(hello.world:"hi「)的文件(指定分析儀)

我是否存在任何工具總是可以分析,但我想知道自動生成它?

回答

1

是的,有一個「工具」(實際上是一個完整的數據庫服務器),它會自動執行此操作:eXist。如果正確配置,這可以讓你喜歡

for $hit in collection("/db/my-stuff")//hello/world[ft:query("hi")] 
    order by ft:score($hit) (:uses Lucene scoring formula:) 
    return $hit 

分析儀在每個文檔集合的配置文件中指定的混合XQuery和Lucene的全文查詢。

在(舊)IBM DeveloperWorks article中描述了使用Apache Digester的更輕量級方法。

編輯在處理了eXist兩年後,我想補充一點,它的Lucene集成並不完美。對於簡單的查詢,它通常可以正常工作,但是當在複雜的XPath查詢中執行全文查詢時,查詢優化器看起來會感到困惑,並且您可能會得到錯誤的結果或可怕的性能。也許eXist 2.0已經修復了一些,YMMV。