2009-05-06 2 views

答えて

3

「タグ検索システム」と言いますと、ユーザーがコンテンツにタグを付けることができるソーシャルネットワークの能力を意味し、それによってタグであなたのサイトで最も人気のあるものをバブルアップする雲。また、ユーザーがタグ付きコンテンツなどを介してナビゲートできるようにします。

私のシステムでは、タグ(またはコメントや評価など)が適用されている可能性があるさまざまなテーブルを保持するSystemObjectsテーブルを作成したいので、私の全体にまたがる一般的なタグ付けシステムデータベース。次にSystemObjectID(SystemObjectID)の参照を持つSystemObjectTagsテーブルがあります。これはSystemObjectRecordID(私が興味を持っている特定のレコードを教えてくれます)だけでなく、SystemObjectIDへの参照を持っています。そこから、タグとタグ付けされたすべての詳細データがあります。私は、タグ固有の情報の実行リストをタグテーブルに保存して、タグ(タグの文字列値)、TagID(SystemObjectTagsテーブルが参照する)、システム全体のタグ使用数すべての用途の合計値)などがあります。トラフィックが多いサイトの場合は、このデータをキャッシュに保存して、頻繁にデータにヒットしないようにする必要があります。

このサブシステムを使用すると、検索機能に移動できます。これらの3つのテーブルで必要なデータはすべて、フィルタリング、検索などを簡単に実行できるように用意されています。ただし、ここには非常に多くのデータが含まれているため、より最適化されたテーブル構造のように高速です。このため、検索可能なすべてのデータを保持するためにLucene.NETインデックスを使用することをお勧めします。 Lucene.NETは非常に高速な読み込み時間を提供し、SQL Serverよりもはるかに柔軟な検索アルゴリズムを提供しています。

これで、コンテンツをタグでフィルタリングしたり、タグ、タグカウントなどでコンテンツを検索したりできます。Lucene.netは大きな怖い話題です!あなたの過去を基礎にするためにいくつかの読書をする準備ができています。

+0

@Andrewの説明は、彼の著書ASP.NET Social Networking第11章「GetSystemObjectSpecificTags」と呼ばれるコードサンプルの333ページのAndrewにも記述されています。これはタグリポジトリ内のメソッドですか? –

+0

私はこのシステム全体がこの時点でどのように動作しているかを再考するでしょう。 CQRS、DDDD(yes a fourth D)、およびイベントストアをご覧ください。また、デノーマライザが何であるか、そしてそれがどのように読み込みレイヤを正しくするかも調べる。 –

0

私たちが使用しているオプションは、ページのメタキーワードに「タグ」を入れてから、検索にBingを使用するというものです。

http://msdn.microsoft.com/en-us/library/dd251056.aspx

私たち建築家は、最高のそれを言いました。 "検索エンジンにはベストを尽くして検索させてください。"

自分のサイトにのみ検索を制限し、結果を取り戻して自分で表示することができます。独自の書式で自分のページに表示できます。

唯一の欠点は、サイトが公開されてインデックスが作成されるまで、検索を完全にテストできないことです。

関連する問題