Я не уверен, что проблема заключается в создании файлов или копировании их на диск Google. Если это последний, более простой подход - подключить диск непосредственно к экземпляру следующим образом
from google.colab import drive
drive.mount('drive')
[ 115] Затем вы можете получить доступ к любому элементу на вашем диске, как если бы это был жесткий диск, и скопировать ваши файлы с помощью команд bash:
!cp filename 'drive/My Drive/folder1/'
Другой альтернативой является использование shutil
:
import shutil
shutil.copy(filename, 'drive/My Drive/folder1/')
Когда Вы не хотите постоянно хранить свои индексные данные. Я использую это для тестирования. Добавьте данные к своему RAMDirectory, Сделайте свои модульные тесты в RAMDir.
например.
public static void main(String[] args) {
try {
Directory directory = new RAMDirectory();
Analyzer analyzer = new SimpleAnalyzer();
IndexWriter writer = new IndexWriter(directory, analyzer, true);
ИЛИ
public void testRAMDirectory () throws IOException {
Directory dir = FSDirectory.getDirectory(indexDir);
MockRAMDirectory ramDir = new MockRAMDirectory(dir);
// close the underlaying directory
dir.close();
// Check size
assertEquals(ramDir.sizeInBytes(), ramDir.getRecomputedSizeInBytes());
// open reader to test document count
IndexReader reader = IndexReader.open(ramDir);
assertEquals(docsToAdd, reader.numDocs());
// open search zo check if all doc's are there
IndexSearcher searcher = new IndexSearcher(reader);
// search for all documents
for (int i = 0; i < docsToAdd; i++) {
Document doc = searcher.doc(i);
assertTrue(doc.getField("content") != null);
}
// cleanup
reader.close();
searcher.close();
}
Обычно, если вещи будут удаваться с RAMDirectory, то он будет в значительной степени хорошо работать с другими. т.е. постоянно сохранить Ваш индекс.
Альтернатива к этому является FSDirectory. Необходимо будет заботиться о полномочиях файловой системы в этом случае (который не допустим с RAMDirectory),
Функционально, нет явного преимущества RAMDirectory по FSDirectory (кроме того, что RAMDirectory будет явно быстрее, чем FSDirectory). Они оба сервер две различных потребности.
Довольно подобный RAM и Жесткому диску.
Я не уверен, что произойдет с RAMDirectory, если он превысит предел памяти. Я был бы кроме a
OutOfMemoryException: система. SystemException
брошенный.