【问题标题】:Thinking Sphinx groups/collections of results思考狮身人面像组/结果集合
【发布时间】:2017-06-03 23:58:07
【问题描述】:

我正在尝试使用 TS 进行搜索,其中结果按属性分组(在示例中:类别)。

这样的结构(不一定是数组):

[[id: 1, name: this, category: foo] [id: 2, name: this, category: foo]],
[[id:3, name: this, category: bar], [id:4, name: this, category: bar]]

我想我可以得到按属性排序的结果,然后通过属性检查生成我想要的结构的结果,但我想看看是否有可能是 TS 为我做这件事而不必使用rails 遍历每个结果项。

我需要这个结构来显示按属性分类的结果元素。

我尝试过使用 GROUP_BY,但它每个属性只返回 1 个元素,这让我觉得我要么不理解 GROUP_BY,要么查询不正确:

Video.search(Search.build_options.merge({:conditions => {:name => "this"}, group_by: :category}))

我正在使用当前版本的 Sphinx 和 Thinking Sphinx,

【问题讨论】:

  • 每组一个元素,有点像分组的定义。您每组获得一个,以及该组中的项目数。它是一个聚合函数。听起来您可能不想真正“分组”,但也许只是“排序”,以便来的类别的行是相邻的? - 如果这不能解释,也许可以详细说明您寻找的实际结构

标签: ruby-on-rails search grouping sphinx thinking-sphinx


【解决方案1】:

正如 Barry 在他的 cmets 中所指出的,Sphinx 的分组方法是为每个分组的属性值返回一个记录,而不是该值的结果集合。因此,Thinking Sphinx 的行为也是如此。

如果您想要每个值的结果集合,您将不得不自己构建 - 您绝对不能依赖 TS 来为您完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    相关资源
    最近更新 更多