2012-01-23 4 views
2

Sitecore에서 Lucene 검색을 구현하려고합니다. 기본 Sitecore.Search 구현을 사용하면 은 내 구성 파일에 정의 된 색인에 대한 참조를 가져와 index.Rebuild를 호출 할 수 있어야합니다.Lucene과 Sitecore를 사용하여 잠금을 얻지 못했습니다.

AdvancedDatabaseCrawler에서 RebuildDatabaseCrawlers 스크립트를 사용했지만 재 작성을 호출 할 때마다 실패합니다.

I 나타나는 오류는 다음과 같습니다 아무 소용 (모두 전체 파마를 제공 포함)

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

내가 변경 해봤 권한, 다시 시작 데이터베이스 및 IIS, 모두. 또한 검색 결과 구성 섹션을 최소한으로 줄이고 동일한 결과를 얻으려고했습니다.

불행히도 index.Rebuild() 메서드가 Sitecore.Search 어셈블리 내부에서 수행하는 작업에 대한 가시성이 없습니다.

+0

언급 한 ADC 스크립트에'Rebuild()'메소드 include를 호출 해보십시오. 나는 이것이 최적화 된 정상적인 방법이라고 생각한다. –

+0

그게 내가 부르는거야. 별도의 스레드에서 작업을 생성하는 표준 버전을 시도하고 현재 재구성 호출을 동 기적으로 문제 해결을하고 있습니다. – DarkenedPhoenix

답변

1

앱 풀 사용자의 c:\Temp에 대한 권한을 조정 해보세요. Network Service

당신은 또한에 대해 동일한 작업을 수행하려고 할 수 있습니다 c:\windows\microsoft.net\framework\{version}\Temporary ASP.NET Files

2

문제는 구성과 관련된 었죠.

특히, Sitecore.Search와 Sitecore.Data.Indexing이 둘 다 필요하지 않다는 것을 확인한 후 구성 파일에서 불필요한 Sitecore.Data.Indexing 참조를 모두 제거하려고 할 때 다음 줄을 주석 처리했습니다.

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

거기에 있어야합니다.

관련 문제