Elasticsearch не упорядочен должным образом - PullRequest
1 голос
/ 08 января 2020

У меня есть эта модель

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

Моя проблема в том, что упорядочение по порядку не работает. .. Мой запрос должен возвращаться в алфавитном порядке, но это не так. Я делаю что-то неправильно? Спасибо

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

1 Ответ

0 голосов
/ 09 января 2020

Я решил проблему, добавив поле в search_indexes.py следующим образом: full_name = indexes.CharField (model_attr = 'full_name', indexed = False, сохранено = True)

Чем я сделал rebuild_index, и он работал как шарм .. В любом случае, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...