2

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

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

我找不到对这个属性求和的方法。我怎么能这样做?

(我使用狮身人面像 PHP API)

4

4 回答 4

3

Sphinx 从 0.9.9-rc2 版本开始支持聚合函数(sum、avg、min、max)。检查来自www.sphinxsearch.com/docs/current.html的文档

于 2009-05-21T19:29:41.153 回答
1

与前面的答案相呼应,在 Sphinx 查询中是不可能的。虽然表达式语法允许在排序中进行某种级别的计算,但它没有任何聚合函数。除非您将该总和值存储为一个属性(这可能是一个选项 - 在索引期间计算它),否则它必须是每条记录的单独 SQL 查询。

于 2009-03-20T01:40:15.603 回答
0

据我所知,这在当前的 Sphinx 版本中是不可能的。group by 函数旨在返回 group by 属性(即项目组的不同属性)、该组中的计数以及该组中的“顶部”项目。

最好的选择是在 Sphinx 之外进行求和。您可以按属性按组执行 Sphinx 搜索排序,然后在 PHP 中遍历这些项目,并在进行时求和。这种方法可能效率不高,因此可能需要定期缓存以减少服务器负载。

于 2009-03-19T13:49:54.977 回答
0

你的意思是分面搜索?^_^ http://sphinxsearch.com/blog/2013/06/21/faceted-search-with-sphinx/

于 2013-10-03T05:26:57.070 回答