我正在尝试在 Sitecore 中实现 Lucene 搜索。使用默认的 Sitecore.Search 实现,我应该能够获取对配置文件中定义的索引的引用并调用 index.Rebuild。
我尝试使用 AdvancedDatabaseCrawler 中的 RebuildDatabaseCrawlers 脚本,但是每次我调用 Rebuild 时,它都会失败。
我收到的错误是:
Lock obtain timed out: SimpleFSLock@C:\sites\MySite\Data\indexes\__mysite\write.lock
我尝试过更改权限(包括给予每个人完全权限)、重新启动数据库和 IIS,但均无济于事。我还尝试将搜索配置部分精简到最低限度,但结果相同。
不幸的是,我对 index.Rebuild() 方法的作用没有任何了解,因为它位于 Sitecore.Search 程序集中。
最佳答案
问题最终与配置有关。
具体来说,在确定我不需要 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>
那需要在那里。
关于lucene - 使用Lucene和Sitecore获取锁失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8977883/