• 
      

    Perform incremental search reindexing of users based on the last_login field.

    Review Request #10645 — Created July 24, 2019 and submitted

    Information

    Review Board
    release-3.0.x
    ad73ae9...

    Reviewers

    When performing an incremental reindexing of users, Haystack emits
    warnings that it has no way of determining the age of an entry for
    users, since there's no sort of "last updated" field available.

    We do have a workaround, in that Review Board does update the
    last_login field when users access the site, rather than just when
    they explicitly log in. We can tie updates to that.

    What this basically means is that we will re-index any active accounts
    (which might have information changed), but if information is changed
    with an older account, it won't be noticed without performing a full
    re-index.

    Performing an incremental reindexing and saw that the warnings went
    away, and the new information on a user was indexed.

    Description From Last Updated

    Hmm. This potentially means reindexing every user every 30 minutes. That seems excessive.

    david david
    david
    1. 
        
    2. Show all issues

      Hmm. This potentially means reindexing every user every 30 minutes. That seems excessive.

      1. Without it, it reindexes every user :/ Basically omits a __lte= and __gte= query.

      2. updated_field = self.get_updated_field()
        
        update_field_msg = ("No updated date field found for '%s' "
                            "- not restricting by age.") % model.__name__
        
        if start_date:
            if updated_field:
                extra_lookup_kwargs['%s__gte' % updated_field] = start_date
            else:
                warnings.warn(update_field_msg)
        
        if end_date:
            if updated_field:
                extra_lookup_kwargs['%s__lte' % updated_field] = end_date
            else:
                warnings.warn(update_field_msg)
        
        ...
        
        return index_qs.filter(**extra_lookup_kwargs).order_by(model._meta.pk.name)
        
      3. OK then.

    3. 
        
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (e394b02)