docs: def _get_field(self, field):
          """
          Queries the api for a single field for the record by `id`.
          This method should only be called indirectly by cached properties.
          :param field: name of the record field to load
          """
          if not hasattr(self, "id") or self.id is None:
              raise APIResponseError("Cannot query an article without an id")
          sq = next(SearchQuery(q="id:{}".format(self.id), fl=field))
          # If the requested field is not present in the returning Solr doc,
          # return None instead of hitting _get_field again.
          if field not in sq._raw:
              # These fields will never be in the result solr document;
              # pass through to __getattribute__ to allow the relevant
              # secondary service queries
              if field in ["reference", "citation", "metrics", "bibtex"]:
                  pass
              else:
                  return None
          value = sq.__getattribute__(field)
          self._raw[field] = value
          return value