When processing many millions of documents and saving them as spacy documents for later (more processing, visualisation, extracting features), one obvious solution to scaling up is parallel/distributed processing. This means that each parallel process will have their own Vocab that may get extended over time.
When saving documents, clearly one does not want to save the vocab with the document. So to_disk is probably the best option. For loading the document with from_disk, we need a vocab that contains everything from the point in time when the document was processed, or later and from the correct process.
I think it is kind of ugly and clumsy to keep around multiple vocabs and store with each document the id of that vocab. A much better solution would be to create one uber-vocab from the final vocabs from each process after all processes have finished. That vocab could then be used with any document processed.
So the question is: is there already a way to merge a bunch of vocabs into one vocab that would contain the union of all of them?