sql >> データベース >  >> NoSQL >> MongoDB

java、Redis、Elastic Search、Mongoによるオートコンプリート

    これは重要な検索のユースケースであり、MongoDBとRedisはキーベースの検索に最適であり、検索目的には使用できません。一方、Elasticsearchは、そのようなユースケース用に特別に構築された分散検索エンジンです。

    システムを選択する前に、機能が内部でどのように機能するかを知っておく必要があります。また、システムを選択する際の考慮事項を以下に示します。

    機能の非機能要件

    1. 1秒あたりの検索クエリの総数(QPS)はいくつですか?
    2. ドキュメントを更新する頻度(例では名前)
    3. 更新されて検索結果に表示される名前の後のSLAは何ですか?
    4. 検索結果のSLA。

    いくつかの機能要件。

    1. オートコンプリートはどのように見えるべきですか、名前のプレフィックス、インフィックス検索?
    2. オートコンプリートの結果を表示する前に、ユーザーが入力する必要のある文字の最小数。
    3. 上記の要件が変更される頻度。

    Elasticsearchは、転置インデックスでドキュメントにインデックスを付け、onkens match(ビジネス要件に合わせて簡単にカスタマイズできる)で動作するため、検索が非常に高速になります。 RedisとMongoDBは内部的にこの構造を持っていないため、このユースケースには使用しないでください。オートコンプリートを実装するために、これらよりもElasticsearchを選択することに疑いの余地はありません。



    1. Mongodbは、今日の日付で作成された結果を検索します

    2. Golangmgoが空のオブジェクトを取得する

    3. spring-data-redisredisTemplate例外

    4. Redisを使用してNodeJとPHPの間でセッションを共有するにはどうすればよいですか?