$npx skillfedfor your agent

django-opensearch-dsl

Wrapper around opensearch-py for django models

With conditionsPyPI Front-EndsReleased Nov 2025116.5K downloads / moApache Software License 2.0Source build

Decision gist · record as of 2026-08-14

sdist only — django_opensearch_dsl-0.8.0.tar.gz · builds from source
v0.8.0 · released 2025-11-24 · 2 runtime deps: opensearch-py, python-dateutil

Yes, with conditions. The package is suitable if you need full-text search in a Django application and are willing to operate an OpenSearch cluster. Install friction is high (requires opensearch-py and a running server), and maintenance is aging (263 days since last release), but the repository is not archived and supports current Django and Python versions. No known vulnerabilities. Use it when SQL-based search is insufficient and you can commit to maintaining an OpenSearch deployment.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires a running OpenSearch instance (localhost:9200 by default).
  • OpenSearch server must be accessible and properly configured before indexing operations.
  • High install friction due to opensearch-py and python-dateutil dependencies.

License · maintenance · safety

Apache Software License 2.0 (permissive) — Apache Software License 2.0 is permissive, allowing commercial use and modification with minimal restrictions. Suitable for most projects without license compatibility concerns.

last release 2025-11-24 (263 days) · last repo commit 2025-12-16 · 38 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 116,474 downloads/mo, #12,201 on PyPI

Verify before relying

pip install django-opensearch-dsl

# In Django settings:
OPENSEARCH_DSL = {'default': {'hosts': 'localhost:9200'}}

# In documents.py:
from django_opensearch_dsl import Document
from django_opensearch_dsl.registries import registry

@registry.register_document
class MyModelDocument(Document):
    class Index:
        name = 'myindex'
    class Django:
        model = MyModel
        fields = ['name', 'description']
  • Performance characteristics of parallel indexing relative to sequential indexing for large datasets
  • Compatibility guarantees with specific OpenSearch versions beyond the referenced compatibility matrix
  • Memory overhead and query performance impact when indexing complex nested or object fields
Same gist for agents: .md · .json

What it is and what it does

Django OpenSearch DSL is a thin wrapper around opensearch-py that allows you to define and manage search indices for Django models. It lets you declaratively map Django model fields to OpenSearch document fields, then automatically keep those indices in sync via Django signals or asynchronous Celery tasks. The package handles index creation, deletion, population, and field mapping—including complex types like nested and object fields—and provides management commands for administrative operations.

You define Document classes that specify which model fields to index and how to configure the OpenSearch index itself (shards, replicas, refresh behavior). The package then manages synchronization: when a model instance is saved or deleted, the corresponding OpenSearch document is updated in real time or queued for async processing. You can query indices using the Search object from opensearch-py, making full-text search, filtering, and aggregations available to your Django application.

Use it for

  • Add full-text search to a Django application by indexing model fields and querying them via OpenSearch
  • Implement autocomplete or faceted search by leveraging OpenSearch aggregations on indexed model data
  • Decouple search from the primary database by maintaining a separate OpenSearch index synchronized via signals
  • Perform complex text analysis and linguistic queries that SQL databases cannot efficiently handle
  • Scale search performance independently of the main database by tuning OpenSearch shards and replicas per index

Worth the install?

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

With conditions

Yes, with conditions.

The package is suitable if you need full-text search in a Django application and are willing to operate an OpenSearch cluster. Install friction is high (requires opensearch-py and a running server), and maintenance is aging (263 days since last release), but the repository is not archived and supports current Django and Python versions. No known vulnerabilities. Use it when SQL-based search is insufficient and you can commit to maintaining an OpenSearch deployment.

Install

django-opensearch-dsl on PyPI

Before you install

High install friction due to opensearch-py and python-dateutil dependencies. Maintenance status is aging—last release 263 days ago, though repository remains active with recent commits and no archived status. Supports Django 4.2 through 5.2 and Python 3.9 through 3.13.

Requires a running OpenSearch instance (localhost:9200 by default). OpenSearch server must be accessible and properly configured before indexing operations.

License in practice

Apache Software License 2.0 is permissive, allowing commercial use and modification with minimal restrictions. Suitable for most projects without license compatibility concerns.

Quickstart

pip install django-opensearch-dsl

# In Django settings:
OPENSEARCH_DSL = {'default': {'hosts': 'localhost:9200'}}

# In documents.py:
from django_opensearch_dsl import Document
from django_opensearch_dsl.registries import registry

@registry.register_document
class MyModelDocument(Document):
    class Index:
        name = 'myindex'
    class Django:
        model = MyModel
        fields = ['name', 'description']

Verify before relying

  • Performance characteristics of parallel indexing relative to sequential indexing for large datasets
  • Compatibility guarantees with specific OpenSearch versions beyond the referenced compatibility matrix
  • Memory overhead and query performance impact when indexing complex nested or object fields

Package facts

LicenseApache Software License 2.0 permissive
Python supportNot specified
Install frictionHigh. Source build required
Runtime dependencies
2 packages
opensearch-pypython-dateutil
MaintenanceAging 263 days since the last release
Last repo commit
First released
Downloads116,474 / month, #12,201 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Evidence: django_opensearch_dsl-0.8.0.tar.gz

Tags

Capabilities
django opensearch indexingdjango full-text searchopensearch model integrationdjango search backendopensearch dsl djangodjango elasticsearch alternativemodel to opensearch sync
Topics
search-indexingdjango-integrationopensearch
PyPI keywords
djangoelasticsearchelasticsearch-dslopensearchopensearch-dslopensearch-py

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 › “django opensearch indexing”

  • django-opensearch-dslIndexes Django model instances into OpenSearch and provides…
  • modelsearchIndexes Django models into Elasticsearch, OpenSearch, or native…
  • opensearch-loggerProvides a Python logging handler that sends log records directly to…

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

More Front-Ends packages

SQLAlchemy Worth it
PyPI · Front-Ends · released Aug 2026

SQLAlchemy is a Python SQL toolkit and Object Relational Mapper (ORM) that provides both a high-level ORM layer for declarative object persistence and a Core SQL construction system for direct database abstraction and query building.

permissive licensepure Python · 3.7+
422.7Mdownloads / mo
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
alembic Worth it
PyPI · Front-Ends · released Aug 2026

Alembic generates and manages database schema migrations for SQLAlchemy applications, handling version control of database structure changes with support for upgrades, downgrades, and auto-generation from model changes.

Install it if you use SQLAlchemy and need to version-control schema changes; skip it only if you manage migrations manually or use a different ORM entirely.

MITpure Python · 3.10+
215.2Mdownloads / mo
weaviate-client Worth it
PyPI · Front-Ends · released Aug 2026

A Python client library for connecting to and querying Weaviate, a vector database that enables semantic search and AI-powered data retrieval.

permissive licensepure Python · 3.10+
213.2Mdownloads / mo
databricks-sql-connector Worth it
PyPI · Front-Ends · released Jul 2026

A Python client library that connects to Databricks clusters and SQL warehouses using a Thrift-based protocol, conforming to the Python DB API 2.0 specification and supporting Arrow-based data exchange.

Install it if you need to query Databricks clusters or SQL warehouses from Python.

Apache-2.0pure Python
119.5Mdownloads / mo
psycopg Worth it
PyPI · Software Development · released May 2026

Psycopg 3 is a PostgreSQL database adapter for Python that enables applications to connect to, query, and manage PostgreSQL databases using Python code.

Install it if you need to connect Python to PostgreSQL.

LGPL-3.0-onlypure Python · 3.10+
117.0Mdownloads / mo

See also opensearch-dsl · django-elasticsearch-dsl · opensearch-py · elasticsearch-dsl · opensearch-mcp-server-py · modelsearch · elasticsearch8-dsl · django-ordered-model · opensearch-logger · CMRESHandler