我有一个XML文档,我想将它索引到Lucene索引。 即。
<hello>
<world>hi</world>
</hello>
我希望文档中有一个Field(hello.world:"hi“)(指定一个分析器)
我总是可以解析它,但我想知道是否存在任何自动生成它的工具?
答案 0 :(得分:1)
是的,有一个“工具”(实际上是一个完整的数据库服务器)可以自动执行此操作:eXist。如果配置正确,这允许您混合XQuery和Lucene全文查询,如
for $hit in collection("/db/my-stuff")//hello/world[ft:query("hi")]
order by ft:score($hit) (:uses Lucene scoring formula:)
return $hit
分析程序在每个文档集合配置文件中指定。
在(旧)IBM DeveloperWorks article中描述了使用Apache Digester的更轻量级方法。
编辑在处理了eXist两年之后,我想补充一点,它的Lucene集成并不完美。对于简单查询,它通常可以正常工作,但是当在复杂的XPath查询中执行全文查询时,看起来查询优化器会变得混乱,您可能得到错误的结果或可怕的性能。也许eXist 2.0已经解决了一些问题,YMMV。