3

すべての製品を保存するためにmongomapperでmongodbを使用しています。各製品は、多くのレベル(カテゴリ、サブカテゴリなど)を持つ複数のカテゴリに属しています。各製品には、製品に埋め込まれたドキュメントである多くの検索フィールドがあります。

これはすべて機能しており、アプリに検索を追加したいと考えています。

検索システムにはテキスト検索が必要です。最小/最大範囲検索を含む、複数の動的なファセット検索です。

私は太陽黒点の宝石を調べてきましたが、本番環境で実行しようとすることはもちろん、開発者に設定するのが困難です! スフィンクスも見ました。

しかし、非常に複雑な検索システムであるため、mongomapper / mongodb だけを使用するのが十分に速く、最善の方法であるかどうか疑問に思っています。

これに関するヘルプ/提案/経験/チュートリアルと例をいただければ幸いです。

どうもありがとう、

リック

4

1 に答える 1

1

私は Sphinx を利用した非常に大規模な検索に関与してきましたが、それはひどいものだと思います。非常に単純な全文検索以外のものが必要な場合は、構成が非常に困難です。一方、Solr\Lucene は信じられないほど柔軟で、セットアップと実行が信じられないほど簡単でした。

私は Solr を MongoDB と組み合わせて使用​​して、ファセットなどの追加機能をすべて備えた全文検索を強化していません。または、Solr にフィールドにインデックスを付けるように指示することもできますが、フィールドを保存するのではなく、代わりに MongoDB 内のデータに対応する ObjectId を保存するだけです。

検索が本当に複雑な検索システムである場合は、検索に MongoDB を使用せず、Solr を使用することを強くお勧めします。大きな理由の 1 つは、MongoDb にはフル テキスト機能がないことです。代わりに、正規表現の一致があります。正規表現の一致は素晴らしく機能しますが、特定の場合にのみインデックスを使用します。

于 2011-03-24T00:52:50.913 に答える