【问题标题】:Sphinx search for distinct values with countsSphinx 使用计数搜索不同的值
【发布时间】:2014-02-28 16:05:49
【问题描述】:

我有一个“对象”表(实际上是 SQL 连接的结果),其中的数据如下:

ID, content, category_id
1, some searchable data, 5
2, some more data, 6
3, more data, 5
4, another example, 7

我想使用 Sphinx 来索引这个表并返回 distinct category_id 值,以及 有多少条记录有数据命中,按命中数排序.

例如,如果我使用术语“数据”搜索此索引,我希望结果是:

5, 2 hits
6, 1 hit

这对于 MySQL 中的分组和计数来说非常简单,但我无法用 Sphinx 搜索来做同样的事情。

我的 sql_query 应该是什么?我应该如何使用 PHP API 来获得我需要的结果?

【问题讨论】:

    标签: sphinx


    【解决方案1】:
     $cl->SetGroupBy( "category_id", SPH_GROUPBY_ATTR, "@count desc" );
    

    不同的类别 ID 将位于 total_found

    有多少记录有数据命中你没有直接得到,最简单的方法是运行非分组查询,然后在total_found

    【讨论】:

    • 您好,感谢您的帮助。我试图返回实际的类别 ID 作为我的文档 ID,以及每个类别中的对象数。我可能会误解,但看起来这个答案可能只会返回计数。
    • category_id 位于每个匹配项的“attrs”数组中。另见setSelect
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多