Как я могу использовать Lucene для поиска документов XML? - PullRequest
2 голосов
/ 03 мая 2011

Я использую Lucene для поиска по индексу документов XML. Я должен искать документы, в которых есть определенные слова внутри определенных тегов. Каков наилучший способ сделать это?

Я пытался использовать RegexQuery с чем-то вроде "tag.*?word.*?tag", но это не дало никаких результатов.

Для пояснения и пример 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>

Поиск, выполняющий поиск слова «legal» в теге «Definition» («definition.*?legal.*?definition»), должен вернуть этот документ.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Я бы также изучил нативные базы данных XML.В eXist-db (http://exist -db.org ) встроен Lucene, так что вы можете сохранить свой XML нетронутым и запрашивать структуру с помощью XQuery при применении индексов Lucene.

1 голос
/ 03 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...