$npx skillfedfor your agent

elasticsearch-dsl

Python client for Elasticsearch

SkipPyPI DatabaseReleased Apr 20258.9M downloads / moApache-2.0Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — elasticsearch_dsl-8.18.0-py3-none-any.whl
v8.18.0 · released 2025-04-16 · Python >=3.8 · 4 runtime deps: python-dateutil, typing-extensions, elasticsearch, elastic-transport

No—do not install this package for new projects. Version 8.18.0 is a deprecation notice: the package is abandoned and its functionality is now part of elasticsearch. Install elasticsearch directly instead. Existing code using older versions may continue to work, but migration is strongly recommended.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Elasticsearch server running and accessible; Python >=3.8.
  • Low install friction with four stable runtime dependencies.
  • However, the package is abandoned as of 8.18.0 and functionality has been integrated into the official client; migration is recommended.

License · maintenance · safety

Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions.

last release 2025-04-16 (485 days) · last repo commit 2025-04-18 · 3,869 stars · archived

0 known vulnerabilities (OSV.dev, 2026-08-14) · 8,934,840 downloads/mo, #1,575 on PyPI

Verify before relying

pip install elasticsearch

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch("https://localhost:9200")
s = Search(using=client, index="my-index").filter("term", category="search")
response = s.execute()
  • Whether existing code using elasticsearch-dsl will continue to work without modification beyond import path changes.
  • Long-term support timeline for the redirect shim in 8.18.0 before it is removed entirely.
  • Compatibility guarantees between elasticsearch-dsl 8.18.0 and future elasticsearch versions.
Same gist for agents: .md · .json

What it is and what it does

Elasticsearch DSL is a high-level query builder that sits on top of the elasticsearch client. It lets you construct Elasticsearch queries and aggregations using Python method chains and class definitions instead of writing nested JSON dictionaries, making queries more readable and less error-prone. It also provides optional document persistence—you can define Python classes that map to Elasticsearch indices, with field types, custom methods, and automatic serialization.

As of version 8.18.0, this package is deprecated and its functionality has been integrated directly into the elasticsearch library. The 8.18.0 release automatically redirects imports, so existing code will continue to run, but new projects should use elasticsearch directly. The package is no longer actively maintained.

Use it for

  • Building complex search queries programmatically without manually constructing nested JSON structures.
  • Defining Elasticsearch document schemas and mappings as Python classes with type hints and custom methods.
  • Gradually migrating from raw elasticsearch dict-based queries by converting to Search objects and modifying them.
  • Retrieving, saving, and managing documents as Python objects with automatic field mapping.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Skip

No—do not install this package for new projects.

Version 8.18.0 is a deprecation notice: the package is abandoned and its functionality is now part of elasticsearch. Install elasticsearch directly instead. Existing code using older versions may continue to work, but migration is strongly recommended.

Install

elasticsearch-dsl on PyPI

Before you install

Low install friction with four stable runtime dependencies. However, the package is abandoned as of 8.18.0 and functionality has been integrated into the official client; migration is recommended.

Requires Elasticsearch server running and accessible; Python >=3.8.

License in practice

Apache-2.0 permissive license allows commercial and private use with minimal restrictions.

Quickstart

pip install elasticsearch

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch("https://localhost:9200")
s = Search(using=client, index="my-index").filter("term", category="search")
response = s.execute()

Verify before relying

  • Whether existing code using elasticsearch-dsl will continue to work without modification beyond import path changes.
  • Long-term support timeline for the redirect shim in 8.18.0 before it is removed entirely.
  • Compatibility guarantees between elasticsearch-dsl 8.18.0 and future elasticsearch versions.

Package facts

LicenseApache-2.0 permissive
Python supportSupports the current Python release >=3.8
Install frictionLow. Pure-Python wheel
Runtime dependencies
4 packages
python-dateutiltyping-extensionselasticsearchelastic-transport
MaintenanceAbandoned 485 days since the last release
Last repo commit repository archived
First released
Downloads8,934,840 / month, #1,575 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Evidence: elasticsearch_dsl-8.18.0-py3-none-any.whl

Tags

Capabilities
elasticsearch query builderelasticsearch python dslelasticsearch orm mappingelasticsearch search abstractionelasticsearch document persistenceelasticsearch aggregations python
Topics
deprecatedelasticsearchquery-builder

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “elasticsearch python dsl”

  • elasticsearch-dslProvides a high-level Python API for building and executing…
  • elasticsearch8-dslA high-level Python query builder for Elasticsearch that translates…
  • luqumParses Lucene Query DSL syntax into an abstract syntax tree, enabling…

Give your agent the search over MCP, or paste the wish link into any chat.

More Database packages

psycopg2-binary Worth it
PyPI · Software Development · released Apr 2026

psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.

copyleftcompiled wheel · 3.9+
271.6Mdownloads / mo
redis Worth it
PyPI · Database · released Jul 2026

Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.

Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.

MITpure Python · 3.10+
268.3Mdownloads / mo
ydb Worth it
PyPI · Database · released Jul 2026

YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.

Install it if you need to connect Python applications to YDB databases.

permissive licensepure Python · 3.10+
210.0Mdownloads / mo
snowflake-connector-python Worth it
PyPI · Software Development · released Aug 2026

Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.

Apache-2.0compiled wheel · 3.10+
193.6Mdownloads / mo
sqlparse Worth it
PyPI · Software Development · released Aug 2026

sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.

Install it if you need to manipulate, format, or analyze SQL text programmatically.

BSD-3-Clausepure Python · 3.10+
148.9Mdownloads / mo
dbt-adapters With conditions
PyPI · Database · released Jul 2026

Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.

Apache-2.0pure Python · 3.10.0+
121.3Mdownloads / mo

See also django-elasticsearch-dsl · elasticsearch8-dsl · luqum · django-elasticsearch-dsl-drf · opensearch-dsl · elasticsearch6 · es-client · elasticsearch · django-opensearch-dsl · elasticsearch5