我的应用程序使用Grails可搜索插件,下面使用Compass。
开始索引的表约为36 MB,正在构建的索引约为350 MB。在大多数人的书中,这很小。
如果我们删除索引并启动Grails应用程序,则会按预期重建索引文件,但是在运行大约一天后,我们会发现此错误。我们在保存它们的TellMeEntity
实例上调用“reindex”,以确保索引已更新。
Exception org.compass.core.engine.SearchEngineException: Failed to delete alias [TellMeEntity] and ids [[stored/uncompressed,indexed,omitNorms,omitTf]]; nested exception is java.io.FileNotFoundException: /var/www/web17/log/mne/index/tellmeentity/segments_2 (No such file or directory) at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction(doDelete:348)
显然,一旦出现此错误,索引就不会更新,并且搜索对新输入的数据也将不起作用。
我们已经检查了磁盘空间等简单的内容。“segments_2”不存在,但是我希望Compass能够自己创建它。
在
grails-app/conf/Searchable.groovy
文件中:....
mirrorChanges = true
bulkIndexOnStartup = "fork"
....
在我的代码中:
....
def formInstance = new TellMeEntity(name:'form',dataOwner:session.community,createBy:session.zoner,tellMeSite:form).save()
formInstance.reindex()
....
我目前的经验是该代码可以在24小时内正常运行,但是随后开始出现问题。我们每天大约产生3000个新条目,这听起来不算很高,所以我认为这与数量无关。
如何解决此问题?
最佳答案
从臀部射击:您的索引位置/var/www/web17/log/mne是否受到某些日志文件轮换过程的影响,该过程会错误地尝试旋转索引文件? 24小时似乎在干扰某些基于cron的工作。
关于plugins - Grails可搜索插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4050323/