code: func (w *IndexWriter) AddDocument(doc []IndexableField) error {
  	return w.AddDocumentWithAnalyzer(doc, w.analyzer)
  }
docs: // L1201
  /*
  Adds a document to this index.
  
  Note that if an Error is hit (for example disk full) then the index
  will be consistent, but this document may not have been added.
  Furthermore, it's possible the index will have one segment in
  non-compound format even when using compound files (when a merge has
  partially succeeded).
  
  This method periodically flushes pending documents to the Directory
  (see flush()), and also periodically triggers segment merges in the
  index according to the MergePolicy in use.
  
  Merges temporarily consume space in the directory. The amount of
  space required is up to 1X the size of all segments being merged,
  when no readers/searchers are open against the index, and up to 2X
  the size of all segments being merged when readers/searchers are open
  against the index (see forceMerge() for details). The sequence of
  primitive merge operations performed is governed by the merge policy.
  
  Note that each term in the document can be no longer than
  MAX_TERM_LENGTH in bytes, otherwise error will be returned.
  
  Note that it's possible to creat an invalid Unicode string in Java if
  a UTF16 surrogate pair is malformed. In this case, the invalid
  characters are silently replaced with the Unicode replacement
  character U+FFFD.
  */