Anders als bei python whoosh IndexingError when interrupted, ich habe keine Commits nicht unterbrochen, aber die IndexingError
tritt auf, wenn Sie einen neuen Index zu erstellen:Resolving Whoosh IndexingError: Schriftsteller geschlossen ist
import uuid
import os
from whoosh.index import create_in
from whoosh.fields import *
from whoosh.qparser import QueryParser
schema = Schema(hashID=TEXT(stored=True))
indexdir = 'foobar'
if not os.path.exists(indexdir):
os.mkdir(indexdir)
ix = create_in(indexdir, schema)
with ix.writer() as writer:
writer.add_document(hashID=str(uuid.uuid4()))
writer.commit()
Der Fehler:
---------------------------------------------------------------------------
IndexingError Traceback (most recent call last)
<ipython-input-1-85a42bebdce8> in <module>()
15 with ix.writer() as writer:
16 writer.add_document(hashID=str(uuid.uuid4()))
---> 17 writer.commit()
/usr/local/lib/python3.5/site-packages/whoosh/writing.py in __exit__(self, exc_type, exc_val, exc_tb)
208 self.cancel()
209 else:
--> 210 self.commit()
211
212 def group(self):
/usr/local/lib/python3.5/site-packages/whoosh/writing.py in commit(self, mergetype, optimize, merge)
918 """
919
--> 920 self._check_state()
921 # Merge old segments if necessary
922 finalsegments = self._merge_segments(mergetype, optimize, merge)
/usr/local/lib/python3.5/site-packages/whoosh/writing.py in _check_state(self)
553 def _check_state(self):
554 if self.is_closed:
--> 555 raise IndexingError("This writer is closed")
556
557 def _setup_doc_offsets(self):
IndexingError: This writer is closed
Der Schriftsteller sollte innerhalb des Kontextzeitraums sein, also bin ich mir nicht sicher, warum es geschlossen ist, obwohl es neu erstellt wurde. Wie behebt man den IndexingError für einen neuen Index?