Дерево страниц
Skip to end of metadata
Go to start of metadata

Плагин ru.intertrust.cm_sochi.plugins.ReindexSolrDataPlugin (solr.data.reindex.plugin) предназначен для частичной переиндексации данных при изменении схемы solr и конфигурации области поиска, которые на существующей базе индексов приводят к невозможности запуска solr и является альтернативой удалению базы индексов и полной переиндексации.

Плагин позволяет выполнить выборку solr-документов, сохранение идентификаторов в базе, удаление индексов найденных документов и их переиндексацию. Хранение идентификаторов документов, индексы которых подлежат удалению осуществляется в реляционной БД (postgres) в таблицах "solr_index_request" и "solr_index_item"

Для выполнения указанных действий нужно при запуске плагина из админки ввести соответствующие параметры.

Статус

ГОТОВО

Комментарий

Плагин при запуске принимает следующие параметры:

ПараметрОписание

get

Формат строки параметра для поиска документов, индексы которых подлежат удалению, следующий

get(solr-сервер, запрос-для-поиска-документов)

где solr-сервер - идентификатор solr-сервера (regular - для обычного поиска, или значение ключа search.solr.cntx.servers из server.properties для умного), запрос-для-поиска-документов - поисковый запрос в формате solr query language, например cm_area:(ContractsLite) или cm_te_ru_regnumberexact:[* TO *].

Результатом запуска плагина с таким параметром будет являться запись в таблицу "solr_index_request" данных о запросе на поиск/удаление/индексацию, записи в таблицу "solr_index_item" идентификаторов найденных документов (индексов), и идентификатор запроса на индексацию в виде solr-index-request-id: идентификатор (в лог-файле, формируемом плагином)

delete

Формат строки параметра для удаления индексов найденных документов, при выполнении операции get

delete(id-запроса-на-индексацию)

где id-запроса-на-индексацию - идентификатор, получаемый на этапе 1.

При запуске плагина с таким параметром результатом является удаление индексов, найденных на этапе 1 документов

index

Формат строки параметра для индексации найденных на этапе 1 документов, при выполнении операции get

index(id-запроса-на-индексацию)

где id-запроса-на-индексацию - идентификатор, получаемый на этапе 1.

При запуске плагина с таким параметром результатом является запись документов в очередь на индексацию

Параметры:

Пример

Сценарий использования плагина , на примере ошибки cannot change DocValues type from SORTED_NUMERIC to SORTED_SET for field "cm_te_ru_regnumberexact")

  1. запуск solr со старой схемой managed-schema, в которой поле cm_te_ru_regnumberexact описано как целочисленное.
  2. запуск плагина с параметром

    get(_regular_, cm_te_ru_regnumberexact:[* TO *] OR cm_te_en_regnumberexact:[* TO *] OR cm_te__regnumberexact:[* TO *])

    Из лог-файла, формируемого плагином

    16:03:12 start get
    16:03:12 query cm_te_ru_regnumberexact:[* TO *] OR cm_te_en_regnumberexact:[* TO *] OR cm_te__regnumberexact:[* TO *]
    16:03:28 found: 761
    16:03:28 solr-index-request-id: 4341000000000009

    запоминаем идентификатор, в нашем примере - 4341000000000009

  3. запуск плагина с параметром

    delete(4341000000000009)
  4. остановка solr и замена схемы managed-schema на новую

  5. запуск solr с новой схемой

  6. запуск плагина с параметром

    index(4341000000000009)