2012-01-23 3 views
2

Я пытаюсь реализовать поиск Lucene в Sitecore. Используя реализацию Sitecore.Search по умолчанию, I должен иметь возможность получить ссылку на индекс, определенный в моем файле конфигурации, и вызвать index.Rebuild.Невозможность получить блокировку с использованием Lucene и Sitecore

Я попытался использовать сценарий RebuildDatabaseCrawlers из AdvancedDatabaseCrawler, но каждый раз, когда я вызываю Rebuild, он терпит неудачу.

Ошибка я получаю это:

Lock obtain timed out: [email protected]:\sites\MySite\Data\indexes\__mysite\write.lock 

Я попытался изменить права доступа (в том числе давая каждому полный завивка), перезапуск баз данных и IIS, все без толку. Я также попытался скрыть мой раздел конфигурации поиска до минимума, с тем же результатом.

К сожалению, у меня нет видимости того, что делает метод index.Rebuild(), как его внутри сборки Sitecore.Search.

+0

Попробуйте вызвать метод 'Rebuild()' include в указанном вами сценарии ADC. Я считаю, что он вызывает обычный метод с оптимизацией. –

+0

Это то, что я называю. Я пробовал стандартную версию, которая создает задание в отдельном потоке и в настоящее время устраняет неполадки, вызывая синхронное перестроение. – DarkenedPhoenix

ответ

1

Попробуйте настроить разрешения для c:\Temp для пользователя вашего приложения, например. Network Service

Вы также можете попробовать сделать то же самое для: c:\windows\microsoft.net\framework\{version}\Temporary ASP.NET Files

2

Проблема закончилась тем, что были связаны с конфигурацией.

В частности, при попытке удалить все лишние ссылки Sitecore.Data.Indexing из файлов конфигурации после определения того, что я не нужен как Sitecore.Search и Sitecore.Data.Indexing, я закомментировать следующую строку:

<configuration> 
    <appSettings> 
    <add key="Lucene.Net.FSDirectory.class" value="Sitecore.Data.Indexing.FSDirectory, Sitecore.Kernel"/> 
    </appSettings> 
</configuration> 

Это должно быть там.

Смежные вопросы