code: def _index_predicates(self, candidates: TrainingExamples) -> None:
      blocker = self.block_learner.blocker
  
      A_full, B_full = zip(*candidates)
      A = core.unique(A_full)
      B = core.unique(B_full)
  
      for field in blocker.index_fields:
          unique_fields = {record[field] for record in B}
          blocker.index(unique_fields, field)
  
      for pred in blocker.index_predicates:
          pred.freeze(A, B)
  
imports: from __future__ import annotations
  import logging
  import random
  from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, overload
  from warnings import warn
  import numpy
  import numpy.typing
  import sklearn.linear_model
  import dedupe.core
  import dedupe.training
label_desc: Use image node_id 2 for calling the RecordLinkBlockLearner obj's underlying member method code with example usage: obj._index_predicates(candidates) without return types