我正在使用sunspot-rails
gem进行搜索和过滤,但是遇到Solr查询无法返回正确结果的问题。例如,假设我想使用state == Processing
检索模型的所有记录,然后执行以下Sunspot搜索:
MyModel.search do
# pagination and ordering stuff
...
with('state', 'Processing')
...
end
大多数情况下,这将返回正确的结果。有时(到目前为止,仅在生产环境中,我无法在本地复制问题),该查询将返回带有state == In Review
的记录。如果我执行常规的ActiveRecord MyModel.where(state: 'Processing')
,我总是会得到正确的结果。
我认为这可能与我的solrconfig.yml文件有关,但是更改这些参数似乎并没有改变任何内容。该文件的相关部分:
<autoCommit>
<maxTime>15000</maxTime>
<maxDocs>1000</maxDocs>
<openSearcher>true</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>5000</maxTime>
</autoSoftCommit>
有人对为什么我的数据库中的更改未反映在Solr索引中或者我如何调试/记录正在发生的事情有任何指示吗?这是在一个内部小型应用程序上,可能有100个用户左右。我不必每天重新为Solr重新编制索引以使结果保持最新。
谢谢。