【问题标题】:Elasticsearch not ordering properlyElasticsearch 没有正确排序
【发布时间】:2020-04-26 09:43:59
【问题描述】:

我有这个模型

class Profile(User):

rg = models.CharField(max_length=20, null=True,blank=True)
cpf = models.CharField(max_length=15, unique=True, null=True)
about = models.TextField(_('about'),max_length = 10000, null=True, blank=True)
knowledge = models.ManyToManyField(SubCategory, related_name="profile_knowledge")

class Meta:
    verbose_name = _('profile')
    verbose_name_plural = _('profiles')
    db_table = 'pd_profile'
    permissions = (
        ("view_all_users", "Can view user details"),
        ("edit_all_users", "Can edit user details"),
        ("search_profile", "Can search talents"),
        ("user_config", "Can access user config page "),
        ("add_users_permissions", "Can add global permissions to user"),
        ("export_user_data", _("Can export users data")),
    )

def __str__(self):
    return self.full_name

我想通过这样的配置文件进行查询:

query = SearchQuerySet().all().models(Profile)
t = query.filter(content=data.get('value'))
if not t:
    suggestion = query.spelling_suggestion(data.get('value'))
    t = query.filter(content=suggestion)
query = t
query = query.order_by("full_name")

我的问题是,order_by simples 不起作用...我的查询应该按字母顺序返回,但事实并非如此。难道我做错了什么?谢谢

django-haystack==2.5.0 djangorestframework==3.3.2 elasticsearch==1.5.2

【问题讨论】:

    标签: django elasticsearch


    【解决方案1】:

    我确实通过在 search_indexes.py 中添加字段来解决问题 full_name = index.CharField(model_attr='full_name', indexed=False, stored=True)

    比我做了一个rebuild_index,它就像一个魅力.. 还是谢谢。

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多