{"id":24835,"library":"whoosh-reloaded","title":"Whoosh Reloaded","description":"A fast, pure-Python full text indexing, search, and spell checking library. Fork of the original Whoosh with continued maintenance and compatibility fixes. Current version: 2.7.5. Released as needed.","status":"active","version":"2.7.5","language":"python","source_language":"en","source_url":"https://github.com/Sygil-Dev/whoosh-reloaded","tags":["search","full-text","indexing","spell-check","pure-python"],"install":[{"cmd":"pip install whoosh-reloaded","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"Importing top-level whoosh doesn't bring index; must import submodules explicitly.","wrong":"import whoosh","symbol":"index","correct":"from whoosh import index"}],"quickstart":{"code":"import os\nfrom whoosh import index\nfrom whoosh.fields import Schema, TEXT\nfrom whoosh.qparser import QueryParser\n\n# Create schema\nschema = Schema(title=TEXT(stored=True), content=TEXT)\n\n# Create index directory\nos.makedirs('indexdir', exist_ok=True)\nix = index.create_in('indexdir', schema)\nwriter = ix.writer()\nwriter.add_document(title=u'First document', content=u'This is the first document we add!')\nwriter.commit()\n\n# Search\nwith ix.searcher() as searcher:\n    query = QueryParser('content', ix.schema).parse('first')\n    results = searcher.search(query)\n    print(results[0]['title'])","lang":"python","description":"Create an index, add a document, and search."},"warnings":[{"fix":"Upgrade to whoosh-reloaded==2.7.5 or change imports from 'whoosh_reloaded' to 'whoosh'.","message":"In versions 2.7.4.0-2.7.4.4, the import path was 'whoosh_reloaded' instead of 'whoosh'. Upgrade to 2.7.5 to use 'whoosh' again.","severity":"breaking","affected_versions":">=2.7.4.0, <2.7.5"},{"fix":"Use threading.Lock around index/searcher access or instantiate per-thread.","message":"Whoosh is not thread-safe. The index object and searcher should not be shared across threads without locks.","severity":"gotcha","affected_versions":"all"},{"fix":"Use a single writer per index directory and avoid concurrent writes from multiple processes.","message":"The index directory must be locked for writing. If two processes try to write simultaneously, you'll get a LockError.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Ensure you have whoosh-reloaded installed (pip install whoosh-reloaded) and import as 'from whoosh import ...'.","cause":"Using import 'whoosh' when the installed version is old whoosh-reloaded (<2.7.4.4) or the package is not installed.","error":"ModuleNotFoundError: No module named 'whoosh'"},{"fix":"Close all other writers/searchers or delete the lock file (indexdir/.lock) if no other process is using it.","cause":"Trying to create or open an index that is already locked by another process.","error":"whoosh.index.LockError"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}