私は、部分的な文字列を取り、公に知られている可能性のあるページとユーザーの両方を返す「公人」検索の形式を実装しようとしています。ページ側ではいいねの数で並べ替え、ユーザー側では購読者数で並べ替えています。ページは正常に動作します。ユーザーはしません。
私の問題の核心は、次のようにユーザーテーブルで CONTAINS() を使用できないことです。
SELECT id, name from USER where CONTAINS("Jimmy F") ORDER BY subscriber_count DESC
ゼロの結果が得られます。ただし、Profile テーブルを使用すると機能します。ここからサブクエリを実行すると、次のようになります。
SELECT uid,name from USER WHERE uid in (SELECT id FROM profile where
CONTAINS("Jimmy F")) ORDER BY subscriber_count DESC
ここでの問題は、サブクエリがソートされていないことです。したがって、この例では、 63 万 3,000 人のサブスクライバーを持つJimmy Fallonが表示されると予想されます。彼はそのプロファイルサブクエリに含まれていないため、私はしません。そのサブクエリの LIMIT を増やすことはできますが、大幅に遅くなります (LIMIT 200 が返されるまでに 4 秒かかりましたが、まだジミーは含まれていませんでした)。
ここでの私の一般的な質問は次のとおりです。何かアイデアはありますか?より良い結果を得るには、どこに頼ればよいかわかりません。