1
私は約100万のドキュメント(主に映画)のコレクションを持っており、フィールドにテキストインデックスを作成しました。ほぼすべての検索ですべて正常に動作します:20ms未満で結果が得られます。例外は非常に頻繁な用語の1つの検索で、3000ミリ秒まで続くことができます!例えば 、MongoDB:非常に頻繁な用語を検索するときにスローテキスト検索
私はコレクション(唯一の40の文書がそれを持っている)私は「映画」(750個の000の文書がそれを持っている)を検索する場合、それは1msの続く中で「パルプ」を検索すると
は、それが続きます3000ms。 要求をプロファイリングするとき、explain( 'executionStats')はすべての映画のドキュメントがスキャンされたことを示します。私は多くのインデックス作成、ソート+制限とヒントを試しましたが、75万の文書はすべてスキャンされていますが、結果はまだまだ遅いです...
データベース内の非常に頻繁な用語をすばやく検索できる戦略はありますか?
これは正常な動作です、それについて考えます。すべての単語がインデックスに登録されるため、テキストインデックスは実際のコレクションよりもはるかに大きくなります。コレクション全体よりも大きいインデックスの一部を検索すると、mongoDBは実際のコレクション自体をスキャンします。インデックスを強制的に使用することができれば、それはさらに遅くなります。結果を速くするには、結果を制限することができますか? –
私は制限しようとしましたが、ソートされた出力が必要なので、すべてのドキュメントはまだスキャンされています...論理的に。 – Eric