これは重要な検索のユースケースであり、MongoDBとRedisはキーベースの検索に最適であり、検索目的には使用できません。一方、Elasticsearchは、そのようなユースケース用に特別に構築された分散検索エンジンです。
システムを選択する前に、機能が内部でどのように機能するかを知っておく必要があります。また、システムを選択する際の考慮事項を以下に示します。
機能の非機能要件
- 1秒あたりの検索クエリの総数(QPS)はいくつですか?
- ドキュメントを更新する頻度(例では名前)
- 更新されて検索結果に表示される名前の後のSLAは何ですか?
- 検索結果のSLA。
いくつかの機能要件。
- オートコンプリートはどのように見えるべきですか、名前のプレフィックス、インフィックス検索?
- オートコンプリートの結果を表示する前に、ユーザーが入力する必要のある文字の最小数。
- 上記の要件が変更される頻度。
Elasticsearchは、転置インデックスでドキュメントにインデックスを付け、onkens match(ビジネス要件に合わせて簡単にカスタマイズできる)で動作するため、検索が非常に高速になります。 RedisとMongoDBは内部的にこの構造を持っていないため、このユースケースには使用しないでください。オートコンプリートを実装するために、これらよりもElasticsearchを選択することに疑いの余地はありません。