Ошибка условного индекса комбинации в индексе диапазона eXist-db - PullRequest
0 голосов
/ 09 января 2019

Я столкнулся со следующими проблемами при настройке индексов диапазона eXist-db для указания атрибутов, которые стоит индексировать.

<collection xmlns="http://exist-db.org/collection-config/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <index>
        <range>
            <create qname="tei:term">
                <condition attribute="type" value="main"/>
                <field name="mainTerm" type="xs:string"/>
            </create>
        </range>
    </index></collection>

Произошла ошибка: "/ db / system / config / db / range / collection.xconf cvc-complex-type.2.4.a: Обнаружено недопустимое содержимое, начиная с элемента 'condition'. Один из '{" http://exist -db.org / collection-config / 1.0": поле} 'ожидается." Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Ошибка, которую вы получаете, является ошибкой проверки схемы, вызванной наличием элемента <condition>, используемого недавно введенной функцией условного комбинированного индекса .

Я отправил исправление к ошибке, и пока вы можете игнорировать ошибку. Ошибка проверки схемы не повлияет на функциональность.

0 голосов
/ 09 января 2019

Общая структура конфигурации и синтаксис Конфигурационные файлы collection.xconf - это стандартные XML-документы, элементы и атрибуты которых определены в пространстве имен eXist-db http://exist -db.org / collection-config / 1.0 . В следующем примере показан пример конфигурации:

<collection xmlns="http://exist-db.org/collection-config/1.0">
    <index>
        <!-- Full text index based on Lucene -->
        <lucene>
            <text qname="SPEECH">
                <ignore qname="SPEAKER"/>
            </text>
            <text qname="TITLE"/>
        </lucene>

        <!-- Range indexes -->
        <range>
            <create qname="title" type="xs:string"/>
            <create qname="author" type="xs:string"/>
            <create qname="year" type="xs:integer"/>
        </range>
        <!-- N-gram indexes -->
        <ngram qname="author"/>
        <ngram qname="title"/>
    </index>
</collection>

Чтобы использовать новый индекс диапазона, оберните определения индекса диапазона в элемент диапазона:

<collection xmlns="http://exist-db.org/collection-config/1.0">
    <!--from Tamboti-->
    <index xmlns:mods="http://www.loc.gov/mods/v3">
        <lucene>
            <text qname="mods:title"/>
        </lucene>
        <!-- Range indexes -->
        <range>
            <create qname="mods:namePart" type="xs:string" case="no"/>
            <create qname="mods:dateIssued" type="xs:string"/>
            <create qname="@ID" type="xs:string"/>
        </range>
    </index>
</collection>

Условные комбинированные индексы Для комбинированных индексов вы можете указать условия, чтобы ограничить индексируемые значения теми, которые содержатся в элементах, атрибут которых соответствует определенным критериям:

<range>
            <create qname="tei:term">
                <condition attribute="type" value="main"/>
                <field name="mainTerm" type="xs:string"/>
            </create>
        </range>

Это будет индексировать значение элемента tei: term, только если у него есть атрибут с именем type со значением main. В определении индекса может быть указано несколько условий, и в этом случае все условия должны совпадать для индексации значения.

Убедитесь, что у вас есть действительный xml. Для получения дополнительной информации вы можете прочитать документацию здесь: https://exist -db.org / существующие / apps / doc / newrangeindex.xml

...