#solr
Вопрос:
Обновление схемы для Solr 7.7.3, первоначально функционировавшей в Solr 5.5.4.
Для поля, определенного следующим образом:
lt;field name="my_field" type="string" indexed="true" stored="true" multiValued="true" /gt;
Solr получает диктант из веб-приложения Python, содержащий значения, которые изначально являются строкой в стиле csv из текстового поля формы:
«Волшебное значение, Visual-C PlusPlus, ABC123».
Я разделил строку на запятые (и обрезал пробелы). Затем Solr получает значения для my_field в виде массива.
Это сработало в Solr 5.5.4. Solr 7.7.3 жалуется на поле при перестройке его индекса:
«несколько значений, встречающихся для не многозначного поля my_field: [Магическое значение, Visual-C PlusPlus, ABC123]»
Я реализовал приведенное выше исправление массива, чтобы в первую очередь устранить эту ошибку. Почему он снова ломается при изменении версии? Чего ожидает Солр?
Единственное, о чем я могу догадаться, учитывая большую часть документации по многозначности или учитывая большинство ответов на вышеуказанную ошибку, заключается в том, что Solr, похоже, ожидает несколько фактических элементов с тем же именем, что и my_field (что я не могу сделать с помощью диктатора Python).
Ответ №1:
По сути, проблема заключалась в переходе к управляемой схеме по умолчанию в более новых версиях Solr.
Я, наконец, понял, что Солр не использовал schema.xml файл, который я обновлял. Он придерживался файла управляемой схемы, который он уже создал, в каталоге …/MyCore/conf. Удаление управляемой схемы заставило Solr воссоздать ее, а затем привело к указанию на все виды других обновлений, необходимых в файлах …/MyCore/conf, таких как solrconfig.xml, как только я попытался провести повторную индексацию. (Также, чтобы отметить, я не мог сказать, что Solr движется schema.xml в schema.xml.bak после создания управляемой схемы, потому что управляемая схема уже существовала, и у нас также есть сценарий развертывания, который включает schema.xml в ссылку на его местоположение в каталоге конфигурации, где развертывается наше репозиторий.)
Поэтому следите за необходимыми обновлениями основных файлов конфигурации и любыми изменениями в использовании управляемой схемы.