对于生产环境中的一种类型,Sunspot_solr错误地导航gem索引

时间:2012-05-17 16:05:11

标签: sunspot sunspot-rails sunspot-solr

我最近实现了一个由solr驱动的自动完成/自动提示功能。我的solr实现使用rails sunspot gem。自动完成搜索根本不会通过rails,而是直接通过apache反向代理到solr服务器。因此,在这种情况下,太阳黑子的作用是在创建或更新(或删除)记录时重新编制索引。

我的问题是,当创建或保存记录时,触发delayed_job重新索引,它不会反映在仅生产中的自动填充搜索 中。在开发或暂存中保存记录时,更改会立即反映在自动完成搜索中。

我的代码和我的solr配置都是用git管理的,所以它们在我的所有环境(开发,登台和制作)中都是相同的。我还没有做任何特定于生产的配置更改(但是!)。我已经将MySQL数据库和solr索引文件从生产复制回到其他环境,以使一切都相同。我已经重新开始了,但多次使用rails和solr以确保确定。

在制作中,我看到作业通过delayed_job,我看到太阳黑子solr日志中的更新。虽然,大多数日志输出仍然是我的希望。我已经在生产和开发之间进行了逐行比较,它们看起来或多或少相同。

我使用curl直接对solr服务器进行了测试,以确保它只是我和solr - 没有apache,没有网络,没有浏览器。

当保存相同的记录时,它会启动作业以重新索引一堆子对象,并按预期重新编制索引。

此外,如果我使用该模型的rake任务重新索引,它会正确地重建索引。这只需要几分钟,所以这就是我现在正在做的事情。

因此,问题是这一个类型,在这个环境中,仅限于创建/更新。

我能识别的唯一区别是负载,尽管我的网站用户很少,但很难认为这很重要。

知道可能导致这种情况的原因,或者我接下来应该注意什么呢?我的猜测是缓存,但由于我没有进行任何类型的生产调整,它应该是相同的。除非太阳黑子做了我不知道的事情。

0 个答案:

没有答案