我正在尝试按关联对象上的属性对模型项(实时索引(的思维狮身人面像搜索结果进行排序, 文档:
@items = Item.search(
'jitters',
sql: {
left_joins: :document,
order: 'documents.published_at DESC, items.created_at DESC'
}
)
当有结果时,这可以正常工作。
但是,当思考狮身人面像没有找到结果时,它会返回<NoMethodError: undefined method 'any?' for nil:NilClass>
。
我希望它返回通常的"未找到结果。
有谁知道进行此查询的正确方法?还是我发现了错误?
错误可能是由于left_joins
选项造成的 - 我有一种感觉,在思考狮身人面像中不受支持。
但是,这里更好的方法是将文档的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"