如何使用Lucene搜索Xml文档?

时间:2011-05-03 10:26:04

标签: xml regex lucene

我正在使用Lucene搜索XML文档的索引。我应该寻找在某些标签内部有某些单词的文档。什么是最好的方法呢?

我尝试使用类似“tag.*?word.*?tag”之类的RegexQuery,但没有返回任何结果。

澄清,以及XML的例子:

<?xml version="1.0" encoding="utf-8"?>
<Legislation>
    <ENTRY COLNAME="COL1">
    <LegBody_1_1 ID="KEY_3">
        <ParagraphNum REFID="284:1" JUMP_LINK_KEY="0">1. </ParagraphNum>In the following pragraphs - </LegBody_1_1>
        <LegBody_1_2 ID="KEY_4">
            <Term>"Legal Guardian" </Term>
            <Definition> - a person to whom legal title to property is entrusted to use for another's benefit; </Definition>
        </LegBody_1_2>
        <LegBody_1_2 ID="KEY_5">
            <Term>"Authority" </Term>
            <Definition> - Any civil servant appointed by the department head or minister; </Definition>
        </LegBody_1_2>

.... more tags..

</Legislation>

在标签“定义”(“definition.*?legal.*?definition”)中搜索“legal”一词的搜索应返回此文档。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我还会探索原生XML数据库。 eXist-db(http://exist-db.org)内置了Lucene,因此您可以保持XML的完整性,并在应用Lucene索引时使用XQuery查询结构。