A search engine is a software system that finds web pages that match a web search.
Search engines are important pieces of software embedded into every website. They allow the user to interact with all the content on your website at once. They retrieve and display data when a user searches for some information.
Understanding and implementing search bars or searching tools into your website or software is important. At the same time, there are tools like Google Programmable Search for your specific use case. Bing, DuckDuckGo, and Google Search are widely available to search through the internet and access webpages, videos, etc.
Table of Contents
- Challenges with existing search engines
- Open source search engines
- Swirl
- Apache Solr
- Apache Lucene
- Elasticsearch
- Meilisearch
- Typesense
- OpenSearch
Challenges with existing search engines
Enterprises and startups generate much data, such as user logs, payment logs, and customer data. This data is essential for modern businesses to stay competitive, but it must also be kept secret for legal and other reasons. Search engines also play a vital role in data management. They’re the accessors to the information stored in the vast databases, warehouses, and siloes.
An important point arises when you want to use a search for your startup, enterprise (big company), or self-hosted project. There are various limitations to using the search above providers, like Google PSE, Bing, etc.
There are many reasons why Enterprises and Startups might not want to use these search offerings:
- Data privacy
- Vendor lock-in
- Limited capacity
- Self-hosting not available, etc.
Open source search engines
Now, search engines existed since the 1990s. Since the start of the World Wide Web. W3Catalog was created in 1993. Open-source search engines are critical because they offer freedom and data privacy and are self-hosted. Let’s talk about the top 7 open-source search engines you should know (in no particular order).
Swirl
Swirl is an open-source search platform software that simultaneously searches multiple content sources and returns AI-ranked results. You can also use Generative AI Models to get answers based on your data. It’s written in Python.
Swirl can connect to various data sources like:
- Databases (SQL & NoSQL, Google BigQuery)
- Public data services (Google Programmable Search, Arxiv.org, etc.)
- Enterprise sources (Microsoft 365, Jira, Miro, etc.)
And generate insights with AI and LLMs like ChatGPT. Start discovering and developing the answers you need based on your data.
It comes with an Apache 2.0 License and is easy to start. Swirl doesn’t re-index your data and can connect to various sources.
GitHub: https://github.com/swirlai/swirl-search
Slack: Swirl Community Slack
It’s a powerful search platform aimed at Enterprises and Startups alike. It is a good choice for organizations that need a scalable and reliable search solution.
Apache Solr
Apache Solr is an open-source enterprise search platform written in Java. It is built on top of the Apache Lucene search library and provides a variety of features for searching and indexing documents, including:
It can search through the full text of your documents, including the title, body, and metadata.
Real-time indexing and distributed search. This means Solr can be deployed in a distributed cluster to scale to meet the needs of large enterprises. It also comes with an Apache 2.0 license.
GitHub: https://github.com/apache/solr
Apache Lucene
Apache Lucene is a high-performance, full-featured text search engine library in Java. It is a technology suitable for nearly any application requiring structured, full-text, faceting, nearest-neighbor search across high-dimensionality vectors, spell correction, or query suggestions.
Various popular search engines and applications use Lucene, including Elasticsearch, Solr, and Hadoop. It is also used in many custom search applications, such as e-commerce sites, news organizations, and enterprise search applications.
GitHub: https://github.com/apache/lucene
Elasticsearch
Elasticsearch is a distributed search and analytics engine built on top of Apache Lucene. It is known for its speed, scalability, and ease of use. Various organizations, including e-commerce sites, news organizations, and government agencies use Elasticsearch.
Note: Elasticsearch has undergone a license change, and users might need to check which category they fall into for their particular use case.
GitHub:https://github.com/elastic/elasticsearch
Meilisearch
Meilisearch is an open-source, lightning-fast search engine that makes adding search to your website or application easy. It is designed to be simple to use and integrate while still being robust and customizable.
Meilisearch offers several features that make it a good choice for a variety of use cases, including:
- Speed
- Accuracy
- Ease of use
- Customization
GitHub: https://github.com/meilisearch/meilisearch
TypeSense
Typesense is an open-source, typo-tolerant search engine optimized for instant searches while providing an intuitive developer experience. It is a lightweight yet robust and scalable alternative to Elasticsearch and Algolia.
It's fast, typo-tolerant, easy to use, and scalable.
GitHub: https://github.com/typesense/typesense
OpenSearch
OpenSearch is an open-source, community-driven search and analytics suite derived from Elasticsearch. It provides a highly scalable system for fast access and response to large volumes of data with an integrated visualization tool, OpenSearch Dashboards, making it easy for users to explore their data.
OpenSearch indexes your data and stores it in a distributed cluster of nodes. When a user performs a search, OpenSearch queries the cluster and returns a list of results that are relevant to the user's query.
GitHub: https://github.com/opensearch-project/OpenSearch
Contribute to Swirl
The Swirl search community seeks excellent contributors. There’s a lot of things to learn.
Swirl is written in Python and Django. It’s easy and lightweight to get started with. You can:
- Create a tutorial with Swirl.
- Contribute to the UI of the Swirl Search, which is in React.
- Work on adding a search provider or a connector.
- Join our Slack and hang around.
Give Swirl a Star on GitHub.
swirlai / swirl-search
Swirl is open-source software that uses AI to simultaneously search multiple content and data sources, finds the best results using a reader LLM, then prompts Generative AI, enabling you to get answers from your own data.
Swirl
Swirl is open source software that simultaneously searches multiple content sources and returns AI ranked results.
Start Searching · Slack · Key Features · Contribute · Documentation · Connectors
Swirl is open source software that simultaneously searches multiple content sources and returns AI ranked results. Prompt your choice of Generative AI using the top N results to get answers incorporating your own data.
Swirl can connect to:
- Databases (SQL, NoSQL, Google BigQuery)
- Public data services (Google Programmable Search Engines, ArXiv.org, etc.)
- Enterprise sources (Microsoft 365, Jira, Miro, etc.)
And generate insights with AI and LLMs like ChatGPT. Start discovering and generating the answers you need based on your data.
Swirl is as simple as ABC: (a) Download YML, (b) Start in Docker, (c) Search with Swirl. From there, add credentials to preloaded SearchProviders to get results from more sources.
🚀 Try Swirl with ChatGPT
Swirl with ChatGPT as a…
Top comments (11)
I checked out Swirl, they are pretty awesome!
Thanks Nathan
great piece!
thanks
Amazing list. Didn't knew OpenSearch and Elastic search were twins.
Swirl is awesome!
looks amazing!!
Swirl is really good!
Thanks Nevo
There's also Orama Search another interesting full-text and vector search engine open source
Orama looks interesting, but how come you'll do a search in <2KB if you're managing indexes and embeddings? Once again, the vector search part makes it hard to manage.