code: func newLiveIndexWriterConfig(analyzer analysis.Analyzer,
  	matchVersion util.Version) *LiveIndexWriterConfigImpl {
  
  	assert(DefaultSimilarity != nil)
  	assert(DefaultCodec != nil)
  	return &LiveIndexWriterConfigImpl{
  		analyzer:                analyzer,
  		matchVersion:            matchVersion,
  		ramBufferSizeMB:         DEFAULT_RAM_BUFFER_SIZE_MB,
  		maxBufferedDocs:         DEFAULT_MAX_BUFFERED_DOCS,
  		maxBufferedDeleteTerms:  DEFAULT_MAX_BUFFERED_DELETE_TERMS,
  		readerTermsIndexDivisor: DEFAULT_READER_TERMS_INDEX_DIVISOR,
  		termIndexInterval:       DEFAULT_TERM_INDEX_INTERVAL, // TODO: this should be private to the codec, not settable here
  		delPolicy:               DEFAULT_DELETION_POLICY,
  		useCompoundFile:         DEFAULT_USE_COMPOUND_FILE_SYSTEM,
  		openMode:                OPEN_MODE_CREATE_OR_APPEND,
  		similarity:              DefaultSimilarity(),
  		mergeScheduler:          NewConcurrentMergeScheduler(),
  		writeLockTimeout:        WRITE_LOCK_TIMEOUT,
  		_indexingChain:          defaultIndexingChain,
  		codec:                   DefaultCodec(),
  		infoStream:              util.DefaultInfoStream(),
  		mergePolicy:             NewTieredMergePolicy(),
  		_flushPolicy:            newFlushByRamOrCountsPolicy(),
  		readerPooling:           DEFAULT_READER_POOLING,
  		_indexerThreadPool:      NewDocumentsWriterPerThreadPool(DEFAULT_MAX_THREAD_STATES),
  		perRoutineHardLimitMB:   DEFAULT_RAM_PER_THREAD_HARD_LIMIT_MB,
  		checkIntegrityAtMerge:   DEFAULT_CHECK_INTEGRITY_AT_MERGE,
  	}
  }
docs: // used by IndexWriterConfig