2013-01-25 25 views
5

私は、私のケースではタグが多すぎるし、それらのタグがユーザーによって挿入されている(ほとんどの場合、それらを使用するのを忘れていた)ので、タグを使わずに関連するコンテンツを取得する方法が必要です。タグを使用せずに関連コンテンツを取得するにはどうすればよいですか?

Youtube同じことをやってください:たとえば、あなたが面白いビデオを見ているなら、youtubeは関連するコンテンツに他の面白いビデオを表示します。

たとえば、記事のタイトルが「Barack Obama、米国の大統領、マイアミに行く」場合は、「Barack Obama」、「USA」、「President」または「Miami」を含む他の記事を入手する必要があります。可能であれば、同じ話題の他の記事を検索します。

これは非常に難しいので、いくつかアドバイスをお願いしました。

+1

- 最高のコンテンツを記述する何コンテンツ - -
のインデックスを作成しながら、それらの項目を後押し

あなたは成果を微調整することができます(バラック、オバマ、大統領、アメリカ、マイアミに関連するビデオなど)を除くすべての用語を検索するのと同じように、疑わしい品質の何かをしない限り、 )。興味深いことに、これは基本的にあなたにタグを与えることに終わります。ユーザーにタグを指定させると、より高品質なものになると思います。 –

+1

私が提案できる最初のことは、これらを計算するcronジョブを作成することです(これは、1日1回実行するなど非常に非効率的です)。そして、あなたはテーブルに関係を挿入します。私は実際の検索の部分について考えてみましょう:) –

+1

最初のステップでは、悪い言葉(a、an、atなど)のリストを準備したり、各単語のバージョンを切り分けることを知っています(おそらく、サービス)を作成し、このスクラッチからタグ付けシステムを生成します。そのようなアプローチのパフォーマンスを忘れないでください。 –

答えて

1

可能な解決策は、Zend Luceneを使用することです。
http://framework.zend.com/manual/1.12/en/zend.search.lucene.html

完全にPHPで動作する検索エンジンを実装するのは簡単です。 Zend Frameworkとは別のコンポーネントを使用することができます。実装はかなり簡単です。

すべてのコンテンツのインデックスを作成します。 、そして、http://davedash.com/2007/05/29/boosting-terms-in-zend-search-lucene/

キーワードクエリとしてタイトルを使用し、Xを表示します。ここでは、コンテンツそれ以上の関連する(IEのタイトル、ユーザーのタグ)
例の部品を作るために(文書化されていない何らかの理由で)ブースト機能を使用しますユーザーに最高のスコアリング結果を提供します。 (ユーザーが現在見ているコンテンツをフィルタリングしてください)

最適化のため、ページごとに検索結果をキャッシュすることができます。これは真剣にハードになりますあなたは何を使用します検索する場合(タイトル、ユーザータグ、組み合わせ)

関連する問題