skillfed

sqlalchemy-solr

Apache Solr Dialect for SQLAlchemy

sqlalchemy-solr v0.2.4.3 86.6K downloads/30d#13,848 on PyPI11
Permissive license MIT License AGING released

What it is and what it does

sqlalchemy-solr is a SQLAlchemy dialect that bridges Solr search indexes to Python applications by translating SQL queries into Solr's native query syntax. It lets you treat Solr collections as database tables, enabling both raw SQL execution and SQLAlchemy ORM-style queries. The dialect handles field mapping, multi-valued fields as SQL arrays, date range filtering, and Solr aliases as virtual tables.

The package depends on sqlalchemy, python-dateutil, requests, and sqlparse to manage connection pooling, date arithmetic, HTTP communication with Solr, and SQL parsing. It supports basic and JWT authentication, optional SSL/TLS, and integrates with tools like Apache Superset. Compatibility varies by Solr version: aliases work from 6.6 onward, SQL compilation caching and built-in date range compilation are available only in Solr 9.x.

Use it for:

  • Connect Apache Superset to a Solr datasource for visual analytics and dashboarding without writing Solr query syntax.
  • Build Python applications that query Solr collections using familiar SQLAlchemy ORM patterns instead of Solr's native query language.
  • Run ad-hoc SQL SELECT queries against Solr indexes for reporting or data exploration.
  • Migrate existing SQL-based applications to use Solr as a search backend with minimal code changes.
  • Query Solr aliases that span multiple collections as if they were a single table with merged fields.

Worth the install?

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

Provides a SQLAlchemy dialect that allows you to query Apache Solr collections using standard SQL syntax and SQLAlchemy ORM patterns.

Yes, if you need to query Solr from Python using SQL or SQLAlchemy ORM and your Solr version is 6.0 or higher. The low install friction, permissive MIT license, and zero known vulnerabilities make it safe to adopt. However, the aging maintenance status (no recent commits, last release August 2024) means you should verify compatibility with your specific Solr and SQLAlchemy versions before committing to production use.

Install

sqlalchemy-solr on PyPI

pip

pip install sqlalchemy-solr

uv

uv add sqlalchemy-solr

poetry

poetry add sqlalchemy-solr

Installing sqlalchemy-solr

Before you install

Low install friction with a pure-Python wheel. Maintenance status is aging—last release was 2024-08-08 and the repository shows no recent commits, though it remains active and unarchived.

License in practice

MIT License permits commercial and private use with minimal restrictions, requiring only license and copyright notice retention.

Quickstart

pip install sqlalchemy-solr

from sqlalchemy import create_engine, text

engine = create_engine('solr://solr:8983/solr/examples_books')
with engine.connect() as connection:
    result = connection.execute(text("SELECT sequence_i, genre_s FROM examples_books"))
    for row in result:
        print(row)

Requires Apache Solr 6.0 or higher; Solr instance must be running and accessible at the connection URL.

Verify before relying

  • Whether the aging maintenance status (736 days since release) affects compatibility with recent Solr or SQLAlchemy versions.
  • Real-world performance characteristics when querying large Solr collections.
  • Completeness of SQL feature support beyond the documented compatibility table.

Package facts

License MIT License (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 4 — sqlalchemy, python-dateutil, requests, sqlparse
Maintenance aging — 736 days since the last release
Last repo commit
First released
Downloads 86,589/month — #13,848 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: sqlalchemy_solr-0.2.4.3-py3-none-any.whl

Keywords: Apache Solr, Solr, SQLAlchemy, dialect, Apache Superset

Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: Implementation :: CPythonTopic :: Database :: Front-Ends

Tags

sqlalchemy solr dialectquery solr with sqlsolr database driverapache solr sqlalchemysolr orm integrationsql interface for solr
solr-integrationdatabase-driver

More Front-Ends packages