code: def document(self, document):
          
          self._doc_types.append(document)
  
          # If the document index does not have any name, that means the user
          # did not set any index already to the document.
          # So set this index as document index
          if document._index._name is None:
              document._index = self
  
          return document
docs: Associate a :class:`~elasticsearch_dsl.Document` subclass with an index.
          This means that, when this index is created, it will contain the
          mappings for the ``Document``. If the ``Document`` class doesn't have a
          default index yet (by defining ``class Index``), this instance will be
          used. Can be used as a decorator::
  
              i = Index('blog')
  
              @i.document
              class Post(Document):
                  title = Text()
  
              # create the index, including Post mappings
              i.create()
  
              # .search() will now return a Search object that will return
              # properly deserialized Post instances
              s = i.search()