我有一个产品表:
id, code, name, groups, price
1 C001 Name1 71,71,209, 10
2 C002 Name2 76,77,221, 31
3 C003 Name3 171,437,2541, 50
当我尝试使用下面的代码获取结果时,一切正常:
$s->ResetFilters();
$s->SetMatchMode(SPH_MATCH_EXTENDED);
$s->SetLimits($page, 20);
$products = $s->query('@groups 71|77', 'products');
我得到了正确的结果:ID:1和2;
我不明白为什么这段代码不起作用:
$s->ResetFilters();
$s->SetLimits($page, 20);
$s->SetSelect("*");
$s->SetFilter('groups', array(71,77));
$products = $s->query('','products');
在这种情况下,我的“attrs”数组中的产品和“groups”字段每次都是空的。
另一个问题:如何在没有限制指令的情况下从结果中找到“最小”和“最大”价格:
$s->SetLimits($page, 20);
感谢。
答案 0 :(得分:1)
属性和全文字段在Sphinx中是不同的东西。 query()用于进行全文搜索,只要“groups”是一个全文字段,就可以在那里使用它。如果要将“组”设为属性,则需要:
要查找“最小”和“最高”价格,您可以
$cl->SetSelect('*,min(price),max(price)');
P.S。我建议您使用SphinxQL,因为它具有更广泛的功能,对于大多数更容易理解和编程。