Php 斯芬克斯集团
我来说明一下,请耐心听我说 这是我的MYSQL表结构,由sphinx索引Php 斯芬克斯集团,php,sphinx,Php,Sphinx,我来说明一下,请耐心听我说 这是我的MYSQL表结构,由sphinx索引 ------- ------- -------------- tag_id | tag | foreign_id | ------- ------- -------------- 1 love 111 2 blue 222 3 lover 333 4 yellow 444 5 love 555 6 lov
------- ------- --------------
tag_id | tag | foreign_id |
------- ------- --------------
1 love 111
2 blue 222
3 lover 333
4 yellow 444
5 love 555
6 lov 666
当我质疑爱时,我试图从斯芬克斯身上得到的是这样的东西:
love = 2 hit
lover = 1 hit
有人知道怎么做吗?我尝试了下面的php代码,但它输出的只是一堆“love”的标签id
$cl->setGroupDistinct('tag');
$cl->setGroupBy('tag', SPH_GROUPBY_ATTR);
$cl->SetLimits( 0, 10, 500);
$result = $cl->query("love", 'mytags');
我甚至试过这个,但效果不太好
$cl->setGroupDistinct('tag');
我认为狮身人面像的组别可以用来解决这个问题,但我对此一无所知。非常感谢您的帮助!谢谢 我认为您不希望在分组依据的同一属性上使用setGroupDistinct。在SQL术语中,类似于:
SELECT COUNT(DISTINCT tag)
FROM my_tags
GROUP BY tag
据我所知,每个标记只返回1个匹配项
我认为,如果您只是删除对setGroupDistinct的调用,或者将distinct字段更改为外部id,从而过滤掉附加到一个条目上的多个相同标记,您就可以开始了。如果您想计算标记和订单描述,您应该向setGroupBy函数添加额外的子句
$cl->setGroupBy('tag', SPH_GROUPBY_ATTR,'@count desc');
$result = $cl->query('');