将Sphinx传递给表查询集时保留正确的Sphinx结果顺序

时间:2014-04-02 23:38:33

标签: python django sphinx

Sphinx将结果作为字典返回。例如,结果ID的序列是由sphinx场权重排序的[3,1,5,2,4]。当它们作为QuerySet传递给表对象时,我得到的表包含按[1,2,3,4,5]等ID排序的对象。如何在查询集中保留正确的项目顺序?

result = c.Query(q, 'db')
ids = [obj['id'] for obj in result['matches']]
queryset = Model.objects.filter(id__in=ids)
table = Table(queryset)

我可以完全摆脱使用表格,但执行像

这样的事情需要很长时间
objects = [Model.objects.get(pk=obj['id']) for obj in result['matches']]

如何优化?

0 个答案:

没有答案