思考狮身人面像:具有多个指数的模型的独特结果

时间:2015-09-21 13:08:38

标签: ruby-on-rails ruby-on-rails-3 sphinx thinking-sphinx ri

我发现我的结果total_entries计数有些奇怪。

索引我的文档时,我发现有8027个文档编入索引:

using config file 'myapp/config/production.sphinx.conf'...
indexing index 'variant_nl_core'...
collected 8027 docs, 2.0 MB
collected 16124 attr values
sorted 0.0 Mvalues, 100.0% done
sorted 7.4 Mhits, 100.0% done
total 8027 docs, 2007375 bytes
total 15.138 sec, 132600 bytes/sec, 530.23 docs/sec
indexing index 'variant_nl_delta'...
collected 0 docs, 0.0 MB
collected 0 attr values
sorted 0.0 Mvalues, 100.0% done
total 0 docs, 0 bytes
total 0.010 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'variant_nl'...
indexing index 'variant_fr_core'...
collected 8027 docs, 2.0 MB
collected 16124 attr values
sorted 0.0 Mvalues, 100.0% done
sorted 6.6 Mhits, 100.0% done
total 8027 docs, 2048826 bytes
total 16.959 sec, 120808 bytes/sec, 473.31 docs/sec
indexing index 'variant_fr_delta'...
collected 0 docs, 0.0 MB
collected 0 attr values
sorted 0.0 Mvalues, 100.0% done
total 0 docs, 0 bytes
total 0.013 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'variant_fr'...
total 64311 reads, 0.045 sec, 1.2 kb/call avg, 0.0 msec/call avg
total 209 writes, 0.097 sec, 789.4 kb/call avg, 0.4 msec/call avg

当我使用nil作为查询进行搜索时,我希望所有8027文档都与搜索匹配。

r = Variant.search nil

但是当我用total_entries检查匹配条目的数量时,实际上我得到了更多结果:

r.total_entries
 => 15054 

这怎么可能?我缺少什么?

更新23/09/2015

正如Eugene所建议的,多个指数是我问题的原因:

'total_entries'计算在所有indeces(_core和_delta)中找到的文档数。

现在,我需要一种方法来了解我的模型的实例('Variant')对应于sphinx文档。

1 个答案:

答案 0 :(得分:1)

从索引日志中可以看出,您有两个索引:' variant_nl'和' variant_fr',每个索引包含8027个文档。总共有15054份文件。