Web アプリの開発で問題に直面しています。説明は次のとおりです。
この Web アプリ (まだアルファ版) は、ユーザー生成コンテンツ (通常は短い記事ですが、長さが画面の約 4 分の 1 と非常に長くなる可能性があります) に基づいており、すべてのユーザーがこれらの記事を少なくとも 10 件送信するため、その数は急速に増加するはずです。性質上、約 10% の記事が複製されるため、それらを取得するためのアルゴリズムが必要です。
次の手順を思いつきました。
- 送信時にテキストの長さを取得し、それを別のテーブル ( ,length) に保存します。問題は、記事が PHP のspecial_entities
article_id
() 関数を使用してエンコードされ、ユーザーがコンテンツをわずかに変更して投稿することです (コンマ、アクセント、またはいくつかの単語を飛ばしても) - 次に、長さの範囲 = +/- 5% のデータベースからすべてのエントリを取得します
new_post_length
(記事の送信に関する人的要因を念頭に置いて、別のしきい値を使用する必要がありますか?) - 最初の 3 つのキーワードを取得し、手順 2 で取得した記事と比較します
- 最も可能性の高い一致を含む最終的な配列を取得し、PHP の levenstein() 関数を使用して新しいエントリを比較します
このプロセスは、cron を使用するのではなく、記事の送信時に実行する必要があります。ただし、サーバーに大きな負荷がかかると思います。
アイデアを教えてください。
ありがとうございました!マイク