我有一个posts
带有 MVA 的索引tag
,配置类似于以下内容:
source posts {
sql_query = SELECT id, title, text FROM posts;
sql_attr_multi = uint tag from query; SELECT postid, tagid FROM tagstoposts
}
现在对于给定的帖子,我想找到具有最接近标签的所有其他帖子,例如
- 帖子1:猫,可爱,有趣
- 帖子2:猫,可爱,认真
- 帖子3:狗,可爱
- 帖子 4:伊斯兰国
对于帖子 1,我想找到帖子 2(因为它有 2 个匹配的标签),然后是帖子 3(1 个匹配的标签)。如何使用 SphinxQL 执行此操作?
我已经设法使用以下查询得到我想要的东西:
select id, in(tag,55)+in(tag,1321) AS shitfix from posts where match('') and tag in (55,1321) ORDER BY shitfix DESC;
但感觉应该有更好的方法。