Every writer should be writing to their own directory, and you can merge them together as a final step using IndexWriter.AddIndexesNoOptimize
Merges all segments from an array of indexes into this index.
This may be used to parallelize batch indexing. A large document collection can be broken into sub-collections. Each sub-collection can be indexed in parallel, on a different thread, process or machine. The complete index can then be created by merging sub-collection indexes with this method.