首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sphinx搜索查询前20个按标题权重排序,下一个20个按标题ASC排序,无重复输出

问sphinx搜索查询前20个按标题权重排序,下一个20个按标题ASC排序,无重复输出
EN

Stack Overflow用户
提问于 2017-03-16 12:08:32
回答 1查看 233关注 0票数 0

如何通过sql命令在sphinx上选择前20行按标题权重排序和下20行按标题排序ASC (总共40个结果)在同一sql命令上,但不给出重复的标题输出。

我尝试了这个sql命令,但所有标题结果都是通过WEIGHT()排序的。

代码语言:javascript
复制
$sql = "SELECT *,MAX(WEIGHT()) AS tpw FROM vids_tab 
 WHERE MATCH('@title " . mysql_real_escape_string( 'fun | funny | today funny' ) . "') 
 GROUP 5 BY title ORDER BY tpw DESC, title ASC LIMIT 40 OPTION max_matches=40";
EN

回答 1

Stack Overflow用户

发布于 2017-03-17 03:55:21

老实说,我真的不认为这在一个查询中是实用的。只需发出两个查询。然后删除应用程序中的任何重复项。

在第二个步骤中,确保结果的数量增加一倍以上,所以即使需要删除20个重复的结果,仍然会有20个。

如果真的想要一个命令,考虑一下需要一个UDF。对于特定的问题,需要知道前20个结果的权重范围(因此可以创建一个虚拟列进行排序(即知道行是否在前20个结果中))

代码语言:javascript
复制
... ORDER BY IF(WEIGHT() BETWEEN topweight AND bottomweight, WEIGHT(), 0 ) DESC , title ASC

(这不是一个有效的sphinxQL命令,只是演示了需要模拟什么),所以前20个将按权重排序,non first将获得相同的值,然后按标题排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42825140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档