python whoosh IndexingError при прерывании

Эта странная ошибка появляется после того, как я прервал процесс фиксации whoosh. Когда я пытаюсь зафиксировать сейчас, я получаю

  File "/usr/local/lib/python2.7/dist-packages/whoosh/filedb/filewriting.py", line 179, in     _check_state
    raise IndexingError("This writer is closed")
whoosh.writing.IndexingError: This writer is closed

Я пытался переустановить lib, изменить каталог index, но это не сработало. Итак, как я могу починить свист?


person mirt    schedule 21.01.2013    source источник


Ответы (1)


Я думаю, что нет необходимости "чинить свист" (или индекс).

Это может быть просто ваш код, который открывает средство записи, может, использует его, закрывает, а затем снова пытается использовать закрытое средство записи.

Просто всегда делай так:

with myindex.writer() as w:
    w.add_document(title=u"First document", content=u"Hello there.")
    w.add_document(title=u"Second document", content=u"This is easy!")

И если вам нужно добавить больше документов позже (вне этого блока with), откройте новый писатель таким же образом...

Примечание: модуль записи w автоматически закрывается при выходе из блока with, так работает так называемый контекстный менеджер.

person Thomas Waldmann    schedule 24.02.2013