2012-02-23 8 views
0

私はXMLドキュメントを持っており、それをLuceneインデックスにインデックスしたいと思います。私は(アナライザを指定する)文書に(hello.world:"hi」)フィールドを持つことが期待されるXMLからLuceneドキュメントを作成する

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

すなわち

任意のツールを存在するかどうか、私はいつもそれを解析することができますが、私は思っていましたそれを自動的に生成するには?

答えて

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のフルテキストクエリを混在させることができますアナライザは、文書ごとの収集構成ファイルに指定されています。

Apache Digesterを使用したより軽量なアプローチは、(旧)IBM DeveloperWorks articleに記載されています。

EDIT eXistを2年間処理した後、私はLuceneの統合が完全ではないと付け加えたいと思います。単純なクエリの場合、通常正常に動作しますが、複雑なXPathクエリの途中でフルテキストクエリが実行されると、クエリオプティマイザが混乱し、誤った結果または恐ろしいパフォーマンスが得られるように見えます。たぶん、eXist 2.0でこれのいくつか、YMMVが修正されている可能性があります。

関連する問題