Thinking Sphinx,搜索按关联属性排序

Thinking Sphinx, search ordered by associate's attribute

我正在尝试按关联对象上的属性对模型项(实时索引)的 Thinking Sphinx 搜索结果进行排序,文档:

 @items = Item.search(
  'jitters',
  sql: {
    left_joins: :document,
    order: 'documents.published_at DESC, items.created_at DESC'
  }
)

当有结果时,这会正常工作。

但是,当 Thinking Sphinx 找不到任何结果时,它 returns <NoMethodError: undefined method 'any?' for nil:NilClass>

我希望它 return 通常的“未找到结果”。

有谁知道进行此查询的正确方法吗?还是我发现了错误?

错误可能是由于 left_joins 选项引起的 - 我感觉 Thinking Sphinx 不支持该选项。

但是,这里更好的方法是将文档的 published_at 时间包含在项目索引中,这样 Sphinx 本身就可以进行排序:

# within the index definition:
has published_at
has document.published_at, :as => :document_published_at

# and then when searching:
Item.search "jitters", :order => "document_published_at DESC, published_at DESC"