code: def get_thread(self, email, mailinglist):
          
  
          subject_slug = slugify(email.subject_clean)
          thread = self.THREAD_CACHE.get(subject_slug, {}).get(mailinglist.id)
          if thread is None:
              thread = Thread.all_objects.get_or_create(
                  mailinglist=mailinglist,
                  subject_token=subject_slug
              )[0]
  
              if self.THREAD_CACHE.get(subject_slug) is None:
                  self.THREAD_CACHE[subject_slug] = dict()
              self.THREAD_CACHE[subject_slug][mailinglist.id] = thread
  
          thread.latest_message = email
          thread.update_keywords()
          thread.save()
          return thread
docs: Group messages by thread looking for similar subjects