skillfed

Whoosh

Fast, pure-Python full text indexing, search, and spell checking library.

whoosh v2.7.4 1.3M downloads/30d#4,127 on PyPI
Permissive license Two-clause BSD license Abandoned released

What it is and what it does

Whoosh is a full-text search library written entirely in Python, designed to let developers add search and indexing capabilities to applications without needing to compile or install external dependencies. It provides a Pythonic API for creating indexes, performing searches, and includes features like pluggable scoring algorithms (including BM25F), text analysis, and a built-in spell-checker. The library was created for use in Houdini's help system and is maintained as a pure-Python solution suitable for research, prototyping, or scenarios where avoiding compiled dependencies is important.

The package supports fielded indexing and search, allowing you to index and query structured documents. It includes a powerful query language and lets you customize nearly every component—scoring, text analysis, storage format, and posting format—to fit your exact needs. However, the project has not been actively maintained since April 2016, meaning it does not receive bug fixes, security updates, or compatibility improvements for newer Python releases.

Use it for:

  • Add search functionality to a web application or documentation site without external service dependencies
  • Build a research prototype or proof-of-concept search system in pure Python
  • Index and search structured documents in a Python application with custom scoring or analysis needs
  • Implement spell-checking functionality within a Python application
  • Create a searchable help system or knowledge base embedded in a desktop or web application

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Whoosh is a pure-Python full-text search and indexing library that lets you add search functionality to applications without compiling native code.

Yes, if you need a pure-Python search library for a new project and can accept the maintenance risk. The low install friction and permissive license make it accessible, but the abandoned status since 2016 means no security updates, Python version compatibility fixes, or performance improvements. Use it for prototypes, research, or internal tools where you control the environment; avoid it for production systems or applications requiring ongoing support.

Install

whoosh on PyPI

pip

pip install whoosh

uv

uv add whoosh

poetry

poetry add whoosh

Installing Whoosh

Before you install

Installation is straightforward with no runtime dependencies, but the project has been abandoned since 2016 with no recent maintenance or updates.

License in practice

Licensed under the permissive two-clause BSD license, allowing commercial and private use with minimal restrictions.

Quickstart

pip install Whoosh

from whoosh.fields import Schema, TEXT
from whoosh.index import create_in

schema = Schema(title=TEXT, content=TEXT)
index = create_in("indexdir", schema)
writer = index.writer()
writer.add_document(title="Example", content="Sample text")
writer.commit()

Verify before relying

  • Current compatibility with Python versions beyond 3.x (classifiers list Python 3 but no specific minor versions)
  • Whether the package remains functional with modern Python releases given its 2016 last release date
  • Performance characteristics compared to actively maintained alternatives

Package facts

License Two-clause BSD license (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 3,784 days since the last release
First released
Downloads 1,275,417/month — #4,127 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: Whoosh-2.7.4-py2.py3-none-any.whl

Keywords: index, search, text, spell

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 2.5Programming Language :: Python :: 3Topic :: Software Development :: Libraries :: Python ModulesTopic :: Text Processing :: Indexing

Tags

full-text search pythontext indexing librarypure python search enginedocument indexingspell checker pythonsearch functionalitytext analysis indexing
search-indexingpure-pythonabandoned

More Python Modules packages