如何在sphinx组搜索中对属性求和?

时间:2009-03-19 12:19:08

标签: php mysql sorting grouping sphinx

我需要sphinx按属性的总和对结果进行排序。我需要:

  • 按结果ID(已完成)对结果进行分组
  • 按一个属性的SUM
  • 对结果进行排序

我无法找到一种方法来总结这个属性。 我怎么能这样做?

(我使用sphinx PHP API)

4 个答案:

答案 0 :(得分:3)

自0.9.9-rc2版本起,Sphinx支持聚合函数(sum,avg,min,max)。 查看www.sphinxsearch.com/docs/current.html

中的文档

答案 1 :(得分:1)

回应上一个答案,在Sphinx查询中是不可能的。虽然the expression syntax允许在排序中进行某种程度的计算,但它没有任何聚合函数。除非您将该求和值存储为属性(可以是一个选项 - 在索引期间计算它),否则每个记录必须是一个单独的SQL查询。

答案 2 :(得分:0)

据我所知,目前的Sphinx版本无法实现。按功能分组的目的是按属性(即,项目组的不同属性),该组中的计数以及组中的“顶部”项返回组。

最好的办法是在狮身人面像之外进行总结。您可以按属性按组执行Sphinx搜索排序,然后在PHP中循环这些项目,随时求和。这种方法可能效率不高,因此可能需要定期缓存以减少服务器负载。

答案 3 :(得分:0)