言語ステミング テキスト検索では、アルゴリズムを使用して、共通ベースから派生した単語を関連付けようとします(たとえば、「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を使用できます。テキスト検索
完全な結果を関連性の高い順序で返します。