私は150万のレコードを持っています。それぞれにはテキストフィールド "body"があり、多くのテキストを含んでいます。これらのドキュメントに対して正規表現を使用してフルテキスト検索を実行していますが、データのインデックス作成とインデックス作成の間にクエリ時間に差異がないことに気づいていません。MongoDBの大きなテキストフィールドのインデックス作成はクエリを高速化するようには見えませんか?
私は
db.documents.ensureIndex({ body: 1 });
を経由して「ボディ」フィールドにインデックスをMongoDBのは、インデックスにデータをいくつかの瞬間を取って、私は
db.documents.getIndexes()
を実行したときがあった確保コレクションの "body"フィールドにインデックスがあることを示しました。しかし、クエリはインデックス作成の前後で同じ時間がかかります。私は、クエリ
db.documents.find({ body: /test/i });
を実行すると、データがインデックス化されているので
私はそれがより速く実行するために期待されます。私が行うと
db.documents.find({ body: /test/i }).explain();
モンゴは、それが身体のフィールド上BTreeCursorを使っていることを私に伝えます。
ここで何か問題がありますか?テキストデータが索引付けされた後に問合せ時間が減少しないのはなぜですか?
私は適切にすべてをやっているように見えます。私のクエリの選択はMongoDBのために設計されていないようです。 –
まったく;)MongoDBは全文検索のための良いツールではありません。 –