Не удалось создать экземпляр типа: Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer. Подходящий конструктор не найден

Мы переносим проект с sitecore 6.2 на sitecore 7.1.

Я пытаюсь установить пакет Active Directory «Sitecore Active Directory 1.1 rev. 130705» после обновления Lucene Search. я получаю сообщение об ошибке

"Sitecore.Exceptions.ConfigurationException: Could not create instance of type: Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer. No matching constructor was found.".

Это когда я пытаюсь установить пакет с помощью мастера установки в sitecore 7.1.


person Mohan Rangaswamaiah    schedule 05.12.2013    source источник
comment
Вам удалось это исправить?   -  person Paul George    schedule 11.02.2014


Ответы (4)


Поскольку Exception Message заявляет, что это проблема с ContentSearch Sitecore. Это не связано с версией Lucene или проблемами обновления. Источником проблемы является неправильный файл Lucene или Solr (в зависимости от того, что вы используете) IndexConfiguration.config.

Сначала проверьте это

Прежде чем продолжить, убедитесь, что это не человеческая ошибка. Эта ошибка будет отображаться, если у вас есть индексный файл в App_Config/Includes/ более одного раза. Или если два или более файла конфигурации индекса имеют одно и то же имя элемента xml.

Вариант 1 – удалить файл

Вы можете либо удалить оскорбительный файл IndexConfiguration.config из папки /App_Config/Includes/, либо обновить соответствующие файлы конфигурации Index, чтобы использовать DefaultIndexConfiguration в узле configuration XML;

<configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />

Вариант 2. Исправить файл

Другой вариант — изменить пользовательскую конфигурацию IndexConfiguration. Большинство разработчиков знакомы с созданием пользовательского Index путем копирования всего содержимого файла конфигурации, поэтому они будут копировать всю конфигурацию DefaultIndexconfiguration для создания пользовательского IndexConfiguration, вызывающего исключение. Это не нужно.

Вам нужно только небольшое количество настроек из конфигурации DefaultIndexconfiguration, как показано в этом блоге о том, как создайте пользовательскую конфигурацию IndexConfiguration.

person Jonathan Robbins    schedule 01.09.2015

Я не проверял код, но похоже, что вызывающая программа ("Sitecore Active Directory 1.1 rev. 130705") скомпилирована с более старой версией Lucene.Net. Проверьте ссылки на пакет AD и убедитесь, что вы используете ту же версию Lucene.Net, или обновите пакет AD, чтобы использовать более новую версию.

Я не могу сказать, сколько кодирования требуется при обновлении кода, связанного с Lucene.Net (если у вас есть доступ к нему), но обновления за последние год или два в основном представляют собой изменения корпуса или методы получения, преобразованные в реальные свойства.

person sisve    schedule 05.12.2013

У меня была аналогичная проблема, и она была связана с тем, что разработчик создал файл резервной копии в каталоге app_config\include.

Они обновляли один из файлов конфигурации и для создания резервной копии просто скопировали файл, который создал другой файл .config (SameName-copy.config)

Чтобы исправить это, мы просто переименовали его в SameName-copy.config.bak-ccyymmdd.

Надеюсь, это поможет кому-то в будущем с подобной проблемой.

person DanO    schedule 05.02.2016

Обратите внимание, что вы не можете напрямую перейти с 6.2 на 7.1. Вам придется идти по шагам, переходя к 6.5, 7, а затем 7.1.

person kekocapo    schedule 07.11.2014
comment
Это не попытка ответить на вопрос. Это было опубликовано как ответ, но он не пытается ответить на вопрос. Возможно, это должно быть редактирование, комментарий, другой вопрос или полное удаление. - person AStopher; 07.11.2014