Создание индексов Lucene в области Apache Geode

Я пытаюсь создать индексы Lucene в регионе Apache Geode.

У меня есть все определения регионов в cache.xml. Этот cache.xml читается кэш-сервером, и создаются регионы.

Если я определю регион примерно так, как показано ниже в cache.xml,

    <region name="trackRegion" refid="PARTITION_PERSISTENT">
       <lucene:index name="myIndex">
         <lucene:field name="tenant" />
       </lucene:index>
    </region>

Регион создается с помощью Lucene Index, но это не позволяет мне добавлять другие свойства региона, такие как индексирование по первичному ключу, компрессор региона и т. Д.

Geode говорит, что мы должны сначала создать индекс Lucene, а затем регион. Как мне определить индекс Lucene для региона, как показано ниже.

    <region name="trackRegion" refid="PARTITION_PERSISTENT">
        <region-attributes>
            <compressor>
                <class-name>org.apache.geode.compression.SnappyCompressor</class-name>
            </compressor>
        </region-attributes>
        <index name="trackRegionKeyIndex" from-clause="/trackRegion" expression="key" key-index="true"/>
    </region>

Кроме того, я попытался создать регион с аннотациями Java после этого документа https://github.com/spring-projects/spring-data-gemfire/blob/main/src/main/asciidoc/reference/lucene.adoc#annotation-configuration-support.

Даже при этом я получаю Индекс Lucene должен быть создан до ошибки региона.


person nandeesh    schedule 27.05.2021    source источник


Ответы (1)


Что касается модели конфигурации Spring для определения индексов Lucene и использования поддержки Lucene в Apache Geode ...

Поскольку я не знаком с тем, как вы настраиваете и упорядочиваете конфигурацию своего приложения, вы можете взглянуть на несколько тестов интеграции SDG, чтобы узнать, может ли это помочь вам определить вашу проблему.

Сначала взгляните на _ 1_ в наборе тестов SDG. Этот тестовый класс показывает, как настроить приложение Spring с помощью JavaConfig; для пример.

Затем взгляните на _ 2_ в наборе тестов SDG. Этот тестовый класс показывает, как ваше приложение Spring будет настроено с использованием SDG Annotations; для пример.

Имейте в виду, что 1) индексы Lucene на Apache Geode Regions могут быть созданы только в PARTITION Regions и 2) PARTITION Regions могут быть созданы только на одноранговых серверах в вашем кластере. То есть индексы Lucene нельзя применять к клиентским регионам в ClientCache приложении.

Я подозреваю, что в вашей конфигурации приложения отсутствует аннотация Spring @DependsOn либо в шаблоне, либо в Region, содержащей индекс Lucene. Для пример.

person John Blum    schedule 03.06.2021
comment
Что касается модели конфигурации Spring, я отправлю свой код на GitHub и поделюсь ссылкой здесь. Есть ли у вас какой-нибудь ведущий WRT cache.xml, где мне нужно определить индекс Lucene и индекс ключа вместе для региона? - person nandeesh; 03.06.2021