Sponsors
Become a sponsor-
iPulse AI
Open Agentic Investment Research Platform. Inspect deep multi-agent market forecasts and stock picks.
Listed in editorial order, grouped by use case. Click a column header to re-sort the whole list.
Press / to search. Tags open their category. Click a row for details.
Search and filter
Results
| Row number | Tags | |||||
|---|---|---|---|---|---|---|
Full-Text Search 4 projects |
||||||
| 1 | opensearch-py Full-Text Search | 36,525,176 | 473 | Full-Text Search Search Database & Storage | ||
|
The official low-level Python client for OpenSearch.
|
||||||
| 2 | elasticsearch Full-Text Search | 33,818,189 | 4,394 | Full-Text Search Search Database & Storage | ||
|
The official low-level Python client for Elasticsearch.
|
||||||
| 3 | meilisearch Full-Text Search | 712,438 | 607 | Full-Text Search Search Database & Storage | ||
|
The official Python client for the Meilisearch search engine.
|
||||||
| 4 | django-haystack Full-Text Search | 245,891 | 3,723 | Full-Text Search Search Database & Storage | ||
|
Modular search for Django.
|
||||||
Vector Search 1 project |
||||||
| 5 | faiss-cpu Vector Search | 12,287,221 | 41,233 | Vector Search Search Database & Storage | ||
|
A library for efficient similarity search and clustering of dense vectors.
|
||||||
No projects match your search.
Try a broader term, or .
Search guide
Meilisearch is an open-source search engine, and meilisearch is its Python client. Its docs call it a perfect choice for a typo-tolerant search bar, built for instant search aimed at end users. Meilisearch queues writes and processes them asynchronously, so after add_documents(), the Python quick start waits for indexing to complete with client.wait_for_task(task.task_uid).
For log analytics and aggregations beyond search, Meilisearch's own docs point you to Elasticsearch or OpenSearch. elasticsearch is Elastic's official Python client. It's unopinionated and extensible and covers the entire Elasticsearch API. Its docs call the bulk helpers the recommended way to ingest data: unlike calling client.bulk yourself, they handle retries and send documents chunk by chunk.
OpenSearch is a fork of Elasticsearch, and all of its software is Apache-licensed. The Elasticsearch server is available under the AGPL or source-available licenses. OpenSearch's Python client is opensearch-py, a fork of elasticsearch-py that wraps the OpenSearch REST API in Python methods. Use it for any OpenSearch cluster, as OpenSearch's docs recommend OpenSearch clients for OpenSearch clusters. On Amazon OpenSearch Service, sign requests with AWSV4SignerAuth and your IAM credentials.
django-haystack gives Django one API over pluggable search backends, such as Elasticsearch, so you can switch engines without rewriting your search code. Its FAQ advises against it for data that isn't in Django models and for ultra-high volume, since the abstraction costs performance and some engine features. Create a SearchIndex for each model you index, in a search_indexes.py file in its app. Load your data with ./manage.py rebuild_index, then keep the index current with a cron job running update_index.
Faiss is a similarity search library, not a database. It keeps no metadata with the vectors, only integer IDs, so you store your documents elsewhere and look them up by ID. Its tutorial builds an index for the vector dimension, adds a float32 NumPy array, and calls search() for the nearest neighbors. IndexFlatL2 returns exact results. To trade some accuracy for speed or memory, pick an index by RAM and dataset size.
Keep your data in your database, and send the search engine a copy of what people search for. Meilisearch wasn't designed to be your main data container, and django-haystack's docs call the database authoritative and the search index non-authoritative.
Contribute
Know a project that belongs here?
Tell us what it does and why it stands out.