私はXMLドキュメントを持っており、それをLuceneインデックスにインデックスしたいと思います。私は(アナライザを指定する)文書に(hello.world:"hi」)フィールドを持つことが期待されるXMLからLuceneドキュメントを作成する
<hello>
<world>hi</world>
</hello>
すなわち
任意のツールを存在するかどうか、私はいつもそれを解析することができますが、私は思っていましたそれを自動的に生成するには?
私はXMLドキュメントを持っており、それをLuceneインデックスにインデックスしたいと思います。私は(アナライザを指定する)文書に(hello.world:"hi」)フィールドを持つことが期待されるXMLからLuceneドキュメントを作成する
<hello>
<world>hi</world>
</hello>
すなわち
任意のツールを存在するかどうか、私はいつもそれを解析することができますが、私は思っていましたそれを自動的に生成するには?
はい、自動的にこれを行う「ツール」(実際には本格的なデータベースサーバー)があります: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が修正されている可能性があります。