lucene - 使用Lucene和Sitecore获取锁失败

标签 lucene locking sitecore

我正在尝试在 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/

相关文章:

java - Java中的虚假唤醒真的发生了吗?

java - 可重入ReadWriteLock限制

保存项目时 Sitecore ContentSearch 重复索引

Sitecore 8 : Adding a color widget to the Rich Text Editor

sitecore - 如何在 Sitecore 页面编辑器中启用编辑功能?

lucene - 如何设计自动QA系统?

performance - Elasticsearch:数值数据类型,可在整数上获得最佳性能

尝试提交文件时出现 Solr fatal error

java - 自定义阻塞队列锁定问题

c# - 如何清空 lucene.net 中的 BooleanQuery 对象?