2012-02-23 86 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。