我正在尝试实现一种“公众人物”搜索形式,它采用部分字符串并返回可能为公众所知的页面和用户。在页面方面,我按喜欢的数量排序,在用户方面,我按订阅者的数量排序。页面工作正常。用户没有。
我的问题的症结在于我不能在用户表上使用 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
这里的问题是子查询没有排序。所以,在这个例子中,我希望看到拥有 633k 订阅者的Jimmy Fallon 。我没有,因为他不包含在该配置文件子查询中。我可以增加该子查询的 LIMIT,但它会减慢很多(LIMIT 200 需要 4 秒才能返回,并且仍然不包括 Jimmy)。
所以我在这里的广泛问题是:有什么想法吗?我不知道在哪里可以得到更好的结果,在这里。