vdb*_*oor 3 django solr django-haystack
我想按标题对我的django-haystack查询的结果进行排序.
from haystack.query import SearchQuerySet
for result in SearchQuerySet().all().order_by('result_title_sort'):
print result.result_title_sort
Run Code Online (Sandbox Code Playgroud)
我不断收到此错误:
字段"result_title_sort"中的术语多于文档,但是无法对标记化字段进行排序
这是我的haystack字段定义:
result_title_sort = CharField(indexed=True, model_attr='title')
Run Code Online (Sandbox Code Playgroud)
我应该如何定义该字段,以便对其进行排序?
谢谢Mark Chackerian,您的解决方案确实可以用于排序.但是我仍然觉得修改自动生成的输出有点不舒服schema.xml
.我通过使用Solr的<dynamicField>字段类型找到了解决方案.关于如何使用动态字段,Django-Haystack文档并不是很明确,但基本上如果你只是在s 的dict
返回中包含一个新密钥,并且将在索引时将a 添加到文档中.SearchIndex
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"
Run Code Online (Sandbox Code Playgroud)
以上将在文档中创建一个动态字符串字段result_title_sort_s
,您可以通过该字段对结果进行排序.
归档时间: |
|
查看次数: |
3137 次 |
最近记录: |