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

MongoDB全文検索+部分的な単語一致の回避策

    言語ステミング テキスト検索では、アルゴリズムを使用して、共通ベースから派生した単語を関連付けようとします(たとえば、「running」は「run」と一致する必要があります)。これは、オートコンプリート機能に実装するプレフィックスの一致(「blue」と一致する「blueberry」など)とは異なります。

    typeahead.jsを最も効果的に使用するには MongoDBテキスト検索では、prefetchに焦点を当てることをお勧めします 先行入力のサポート:

    • keywordsを作成する コレクションで使用されている一般的な単語(おそらく使用頻度カウントを含む)を含むコレクション。このコレクションは、 Map/Reduceを実行することで作成できます。 コレクション全体でテキスト検索インデックスを使用し、定期的な増分マップ/削減 新しいドキュメントが追加されると。

    • アプリケーションにkeywordsからJSONドキュメントを生成させます 一意のキーワードを含むコレクション(リストを管理可能/関連性のあるものにするために、単語の頻度に基づいて「人気のある」キーワードに限定される可能性があります)。

    次に、生成されたキーワードJSONを使用して、typeaheadのprefetchを使用してクライアント側のオートコンプリートを実行できます。 機能:

    $('.mysearch .typeahead').typeahead({
      name: 'mysearch',
      prefetch: '/data/keywords.json'
    });
    

    typeahead.js prefetchをキャッシュします クライアント側の検索用のlocalStorageのJSONデータ。検索フォームが送信されると、アプリケーションはサーバー側のMongoDBを使用できます。テキスト検索 完全な結果を関連性の高い順序で返します。



    1. PHPコードを使用してcsvをmongodbにインポートする

    2. MongoDB:配列内のアイテムの数をカウントします

    3. 公式のc#ドライバーを使用して、mongodbに双方向の関係を持つオブジェクトを保存します

    4. MongoDBに埋め込まれたドキュメントである配列要素の同時更新