2

私のデータベースでは、たとえば 5000 行 (キーワードとして) のリストがあります。記事 (1000 語でもかまいません) が与えられたので、データベース内のキーワードに一致する任意の単語を一致させたいと考えています。たとえば、私はこれらのレコードを db に持っています (行はコンマを使用して言及されています): tv, tv and videos, movie, horror movie, camera, digital camera, canon digital camera

各行には、「URL」という名前の別の列があります。そして、私の入力文字列は次のようになります:

私はホラー映画が嫌いです。キヤノンが新しいデジタルカメラを発売。これまでのところ、私は 3 台のデジタル カメラを所有しています...」

上記の文字列から、一致する必要があります:

  • 保存したキーワードホラー映画に対するホラー映画. しかし、ここではホラー映画のキーワードの方が適切であるため、映画だけを映画と一致させたくありません。
  • デジタル カメラ対 保存されたキーワードデジタル カメラ
  • デジタル カメラ...保存されたキーワードデジタル カメラに対して

(太字は記事内、斜体はデータベース内)

データベース内の各キーワードを反復処理することは不可能であり、非現実的です。これまでのところ、Solr が適している可能性があることを学びました。しかし、Solr のインデックス作成とクエリを行う方法がわかりません。Solr にクエリを実行するには、キーワードを指定する必要があります。しかし、私は自分のキーワードが何であるかを知りません。記事全体を知っているだけです。キーワードは、1 つまたは複数の単語で構成されます。完全にランダムですが、最大 5 語まで言えます。

照合後、記事内のキーワードを次の列 (URL) の値に置き換える必要があります。たとえば、ホラー映画の記事のキーワードは、ホラー映画URL 列に置き換える必要があります。

誰かが私に正しい道を教えてくれますか? どんな助けでも大歓迎です。

前もって感謝します

4

1 に答える 1

1

あなたの質問には実際にはいくつかの部分があると思いますが、基本的にあなたのウェブサイトに記事を送信したいと思います。その後、あなたのウェブサイトのバックエンドはこの記事を処理し、すべてのキーワードを太字のフォントと URL に置き換えますか?

記事を操作してデータベースからデータを挿入したい場合は、生の php ソリューションが適しているかもしれません (ただし、Solr / Lucene についてアドバイスできるほど詳しくないことは認めざるを得ません)。明らかにベンチマークを行う必要がありますが、5,000 行のデータは、このタイプのシステムで処理するのに不当な量のデータではありません。数秒または数分ごとに記事を送信することはないと思いますか?

したがって、次のことを行う必要があります。

  1. URL を含め、データベースからすべての「キーワード」を一度に選択します (記事を処理するためにメモリに保存されます)。
  2. (必要に応じて) キーワード データを多次元の関連配列に変換します (データベース クエリがまだこれを行っていない場合は、処理が容易になるため)。
  3. 複数のバリエーションを追加の配列で確立するか、データベースの追加の列でキーワードごとに異なる場合は、おそらく複数形を確立します)。
  4. 記事を送信するときは、5000 個のキーワードすべてを (何らかの方法で) ループする必要があります (すべての複数形のバリエーションに対する追加のループを含む) は、記事全体でそのキーワードを検索します。
  5. 記事にキーワードが見つかった場合は、明らかにこれらの一致を太字のフォントと一致する URL に置き換える必要があります。
  6. 記事内のすべてのキーワードが処理されたら、この記事を保存するか、ユーザーに表示する必要がありますか?

キーワードに関する他の 2 つのポイントは次のとおりです。

  • 複数形のキーワードが 's' 接尾辞を超えているかどうかを確認します (つまり、'buddy' => 'buddies' のように実際に綴りを変える複数形の単語にも一致させようとしていますか)?
  • 文法的に、どこまで準備ができていますか/行く必要がありますか? デジタルカメラのようなものをデジタルカメラに合わせる必要がありますか?

かなり長くて不可解な答えで申し訳ありませんが、解決策を探す前にプロジェクトの全範囲を理解することが重要だと思います. あなたはすでにこれらの詳細を書き留めているかもしれませんが、あなたの質問から、完全な答えを提供するには変数が多すぎると思います. 必要に応じて、上記の点のコード サンプルや詳細な説明を喜んで提供します。

編集:キーワードの識別について言及していると少し混乱しますが、キーワードは既にデータベースにある単語ではありませんか? または、送信された記事からキーワードのデータベースを有機的に作成しようとしているのですか?システムは、データベースから現在保存されているキーワードを検索して置換しながら、キーワードの記事を収集しますか?

于 2012-05-30T00:52:13.973 に答える