Swirl Search: Open Source Enterprise Search 🔍 to Securely 🔐 Search your Data.
Tags: opensource, python, productivity, programming
Published: 2023-11-22 18:18:08

## What is [Swirl Search](https://github.com/swirlai/swirl-search)?

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 v3 Demo](https://i.ibb.co/ZBY1HXD/Swirl-v3-Demo-1-2.gif)](https://github.com/swirlai/swirl-search)

{% cta https://github.com/swirlai/swirl-search %} Give ⭐ to Swirl on GitHub {% endcta %}

### 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.


![List of Available Connectors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wci08iuxt0puydpfea1o.png)



_Swirl is a powerful search tool comprising two main parts: a metasearch engine and a content transformation process._

**Metasearch Engine:** This is like a super-search tool. Instead of searching just one place, it sends user search requests to multiple sources simultaneously. These sources can be search engines, databases, or cloud services.

It communicates with these sources using their built-in methods (APIs) and follows standard security practices, such as OAUTH2. Once Swirl gets the search results from all these places, it uses advanced language models to organize and prioritize them, ensuring the most relevant results are shown first.

**Content Transformation Process:** This is an enhancement to the metasearch engine. This process can fetch the actual documents or content from the search results when a search is done. 

It can also add extra information or modify the content to make it more useful for specific purposes. 

Some of the things it can be used for include:

- Sending notifications or pushing information to users.
- Assisting in machine learning projects.
- Improving the performance of AI that generates content (known as Retrieval Augmented Generation or RAG).
- Refining the way generative AI models work.
- In essence, Swirl helps you quickly find information from multiple sources and can fetch and enhance that information for various advanced applications.

## What does Swirl do?

As shown below, Swirl:

1. Adapts the query for each pre-configured SearchProvider
2. Asynchronously sends the adapted query to each, waits for the response, and normalizes the responses.
3. Stores the results in the configured database
4. Uses the included LLM (Large Language Model) to re-rank the results
5. Returns the best results from all sources
6. Not shown: Any search can be put into subscribe mode, causing Swirl to re-run the search, looking for new results on a configured schedule.

The following is an overview of Swirl’s work:

![Overview of Swirl](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnys9vj1sc3d74mj7noy.png)

---
Thank you for reading. We are also on YouTube, where our focus is to:
- Educate about Open Source Enterprise Search and AI
- Inform you about Swirl Open Source
- Share Search & AI Examples in the Enterprise
- Grow the Swirl Community

{% embed https://www.youtube.com/watch?v=TuAipL_7qRI %}