2

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 

これはどのように可能ですか?私が欠けているものは何ですか?

2015 年 9 月 23 日更新

ユージーンが示唆したように、複数のインデックスが私の問題の原因です:

「total_entries」は、すべてのインデックス (_core および _delta) で見つかったドキュメントの数をカウントします。

ここで、スフィンクス ドキュメントに対応するモデル (「バリアント」) のインスタンスの数を知る方法が必要です。

4

1 に答える 1

1

インデックス ログからわかるように、「variant_nl」と「variant_fr」の 2 つのインデックスがあり、各インデックスには 8027 個のドキュメントが含まれています。したがって、合計で 15054 個のドキュメントがあります。

于 2015-09-23T10:29:34.007 に答える