1つのソリューションを開発したWebアプリ開発の問題がありますが、私が見ているパフォーマンスの問題を回避できる可能性のある他のアイデアを見つけようとしています。
問題文:
- ユーザーがいくつかのキーワード/トークンを入力します
- アプリケーションはトークンに一致するものを検索します
- トークンごとに1つの結果が必要
- つまり、エントリに3つのトークンがある場合、エントリIDが3回必要です。
- 結果をランク付けする
- トークンの一致にXポイントを割り当てる
- ポイントに基づいてエントリIDを並べ替える
- ポイント値が同じ場合は、日付を使用して結果を並べ替えます
私ができるようにしたいのですが、理解していませんが、in()の結果に似たものを返すが、チェックされた各エントリIDに一致するトークンごとに重複するエントリIDを返す1つのクエリを送信することです。
トークンごとに1つのクエリを実行する複数の個別のクエリを使用するという、私が行っている方法よりも優れた方法はありますか?もしそうなら、それらを実装する最も簡単な方法は何ですか?
編集
すでにエントリをトークン化したので、たとえば、「see spotrun」のエントリIDは1で、「see」、「spot」、「run」の3つのトークンがあり、それらは別のトークンテーブルにあります。 、それらに関連するエントリIDを使用して、テーブルを次のように表示します。
'see', 1
'spot', 1
'run', 1
'run', 2
'spot', 3