whoosh VS elasticsearch-dsl-py

Compare whoosh vs elasticsearch-dsl-py and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
whoosh elasticsearch-dsl-py
5 3
527 3,767
- 0.7%
0.0 7.1
4 months ago 7 days ago
Python Python
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

whoosh

Posts with mentions or reviews of whoosh. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-13.
  • Milli-py: Python bindings for Milli, an embeddable high-performance search engine
    4 projects | /r/Python | 13 Feb 2023
    The only other embeddable search engine I'm aware off, Whoosh, is brilliant but building the index was quite slow, and search performance degraded quite a lot as number of documents increase (performance is strictly a non-goal). Meilisearch was comparatively faster, I didn't like managing a server to get "just search" in my scripts and applications. However, their underlying engine Milli solves both issues I had, and all that was needed creating bindings for it.
  • Meilisearch v1.0 – the open-source Rust alternative to Algolia and Elasticsearch
    8 projects | news.ycombinator.com | 8 Feb 2023
    Is it really "just a single statically linked binary"?

    I'd love to use Meilisearch as you describe, but their so-called SDKs are just about for the search client, you still need the HTTP server listening on localhost.

    I would love to see something like SQLite based off Meilisearch (i.e. a fully selfcontained library like https://github.com/mchaput/whoosh). Do you know if such a thing exists?

  • Faster Full Text Search
    1 project | /r/django | 5 Jan 2023
    For our full text search, we used whoosh, which works pretty well for moderately big amount of data.
  • We upgraded an old, 3PB large, Elasticsearch cluster without downtime
    1 project | news.ycombinator.com | 11 Nov 2022
    Nearly a decade ago (oh god) I converted some overdesigned five node ES mess to https://github.com/mchaput/whoosh. It's (obviously) not the fastest or anything, but it was more than good enough for low-dozens of GBs of mostly static data.
  • Starting a KF Discord Bot
    3 projects | /r/KnowledgeFight | 24 Oct 2022
    Your best bet is to start using a proper search library rather than the simple loop with 'in' checks that you have now. A search lib will handle things like Unicode/ASCII similarities, removal of stop words, stemming, TF-IDF (and other) weighting, etc. and will be massively faster as well. Quite a few pages come up if you Google "python search engine", also Whoosh looks promising.

elasticsearch-dsl-py

Posts with mentions or reviews of elasticsearch-dsl-py. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-05.
  • Top Python Coding Repos
    6 projects | dev.to | 5 Sep 2022
    requests - A simple, yet elegant, HTTP library. sanic - Next generation Python web server/framework | Build fast. Run fast. click - Python composable command line interface toolkit elasticsearch-dsl-py - High level Python client for Elasticsearch panel - A high-level app and dashboarding solution for Python internetarchive - A Python and Command-Line Interface to Archive.org coconut - Simple, elegant, Pythonic functional programming
  • Elasticsearch works but doesn't work in django - any tips?
    1 project | /r/learnpython | 26 Dec 2021
    I'm not being cryptic. I'm struggling to see how I can be any clearer. You only need to import things you actually use in your code. The only names from Elasticsearch that you use in your code are Search and MultiSearch, and even those are commented out. You don't need to import things that are only used by other imports. Otherwise where would it stop? Obviously the code that defines Match and MultiMatch themselves references other internal Elasticsearch things, and other libraries that are irrelevant to your code - you can see what it imports here. You don't need to import any of those, and for the same reason you don't need to import Match just because it might be referenced by the query method.
  • Building ES analyzers: Any recommend GUIs or workflows?
    1 project | /r/elasticsearch | 6 Feb 2021

What are some alternatives?

When comparing whoosh and elasticsearch-dsl-py you can also consider the following projects:

Elasticsearch - Free and Open, Distributed, RESTful Search Engine

django-haystack - Modular search for Django

Search Engine Parser - Lightweight package to query popular search engines and scrape for result titles, links and descriptions

pysolr - Pysolr — Python Solr client

Whoosh

query-builder - sql query builder library for crystal-lang

searxng - SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.

query.cr - Query abstraction for Crystal Language. Used by active_record.cr library.

lunr.js - A bit like Solr, but much smaller and not as bright

esengine - ElasticSearch ODM (Object Document Mapper) for Python - pip install esengine