思考狮身人面像,按同事属性排序搜索



我正在尝试按关联对象上的属性对模型项(实时索引(的思维狮身人面像搜索结果进行排序, 文档:

@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"

最新更新