gpt4 book ai didi

Django-haystack 按标题对结果排序

转载 作者:行者123 更新时间:2023-12-02 06:53:39 26 4
gpt4 key购买 nike

我想按标题对 django-haystack 查询的结果进行排序。

from haystack.query import SearchQuerySet
for result in SearchQuerySet().all().order_by('result_title_sort'):
print result.result_title_sort

但是我不断收到此错误:

there are more terms than documents in field "result_title_sort", but it's impossible to sort on tokenized fields

这是我的干草堆字段定义:

result_title_sort = CharField(indexed=True, model_attr='title')

我应该如何定义该字段,以便可以对其进行排序?

最佳答案

谢谢 Mark Chackerian,你的解决方案确实适用于排序。然而,我仍然对修改自动生成的 schema.xml 的输出感到有点不舒服。我通过使用 Solr 的 字段类型找到了解决方案。 Django-Haystack 文档并不清楚如何使用动态字段,但基本上如果您只是在 SearchIndex 返回的 dict 中包含一个新键prepare()dynamicField 将在索引时添加到文档中。

SearchIndex 中删除现有属性

#result_title_sort = CharField(indexed=True, model_attr='title') 
def prepare(self, obj):
prepared_data['result_title_sort_s'] #notice the "_s"

以上内容将在名为 result_title_sort_s 的文档中创建一个动态字符串字段,您可以通过该字段对结果进行排序。

关于Django-haystack 按标题对结果排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com