30 open-source projects similar to sunspot/sunspot, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Sunspot alternative.
Searchkick is an integration library and wrapper that connects application models to search engines such as Elasticsearch and OpenSearch. It functions as a search index synchronizer, automatically mirroring database records to a search server to enable full-text and vector retrieval. The project provides a high-level interface for implementing keyword search, semantic vector search, and hybrid search. It distinguishes itself through the ability to combine traditional keyword matching with vector embeddings using reranking and fusion techniques to improve precision. The library covers the end
Ruby integrations for Elasticsearch
Elasticsearch integrations for ActiveModel/Record and Ruby on Rails
Django Haystack is a search abstraction layer and framework for integrating full-text search into Django applications. It provides a unified interface for defining search schemas and managing how data models are indexed and stored across different search engines. The framework acts as a modular backend wrapper, allowing applications to switch between interchangeable search providers without rewriting core search logic. It standardizes interactions with external engines through a decoupled provider layer, facilitating search engine migration by changing configuration settings. The system cove
Ransack is an object-based search library for Active Record models that provides a form-driven framework for building database queries. It generates query conditions from user input through a configurable predicate system, allowing developers to filter records using simple or advanced criteria without writing SQL or relying on external dependencies. The library distinguishes itself through its predicate-based query construction, where search methods are dynamically generated from model attribute names and predicate suffixes at runtime. It wraps search parameters into a dedicated form object t
Sphinx/Manticore plugin for ActiveRecord/Rails
High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client
This project is a comprehensive guide and framework for large language model prompt engineering. It provides a collection of techniques and patterns for optimizing model responses through structured system prompts, context management, and a variety of implementation patterns. The project focuses on several specialized domains, including the creation of autonomous agents through reasoning loops and the implementation of retrieval augmented generation to inject semantic context into prompts. It also provides methods for enforcing structured outputs in serialization formats like JSON or YAML for
Instructor-embedding is a natural language processing framework designed to transform unstructured text into high-dimensional numerical vectors. By utilizing a transformer-based encoder architecture, the system facilitates semantic retrieval, data classification, and similarity analysis across large datasets. The framework distinguishes itself through instruction-conditioned vector projection, which incorporates natural language instructions directly into the embedding process to improve performance for specific tasks without requiring additional training. It functions as a contrastive learni
Elasticsearch is a distributed search engine and document store designed for the high-performance indexing and retrieval of massive volumes of unstructured data. It functions as a centralized analytics platform, providing a schema-flexible architecture that organizes information into searchable indices while maintaining global cluster state through a distributed consensus mechanism. The platform distinguishes itself through its integrated approach to observability, security, and advanced analytics. It combines full-text, vector, and hybrid search capabilities with machine learning-driven insi
Maps Laravel Eloquent models to Elasticsearch types
List of telegram groups, channels & bots // Список интересных групп, каналов и ботов телеграма // Список чатов для программистов
Bleve is a search indexing engine library written in Go, designed to provide full-text search and document retrieval capabilities for embedded application data. It functions as a framework for indexing structured or unstructured information, allowing developers to build searchable collections that support complex query logic and data analysis. The engine distinguishes itself through a pluggable analysis pipeline that normalizes text before indexing, alongside support for vector similarity search to identify semantically related content. It utilizes finite-state transducer automata for efficie
The official Go client for Elasticsearch
elasticsearch-py is a distributed search API wrapper and cluster administrator. It serves as a secure connector for executing search queries and performing administration tasks against a search engine. The library provides a high-level interface for managing indices, documents, and node connections. It enables encrypted data transmission and authenticated communication with a search cluster. The project covers full-text search, data management, and cluster administration. It includes capabilities for managing document data, implementing complex search queries, and maintaining reliable commun
This is a package that allows indexing of django models in elasticsearch with elasticsearch-dsl-py.
Lunr-core is a small, full text search library for use in small applications. It's a .NET port of LUNR.js.
This project is a software development kit and cluster management tool for PHP. It serves as a full-text search SDK and vector search interface, enabling applications to perform lexical, fuzzy, and semantic searches against indexed data. The library implements a PSR 7 HTTP client to ensure cross-environment compatibility through standardized messaging interfaces. It provides a specialized interface for retrieving embeddings and performing semantic retrieval workflows using vector data. Its capability surface covers a wide range of administrative and operational tasks, including search index
This project is a programmatic client for managing the lifecycle of documents within a distributed JSON search engine. It provides an Elasticsearch search client for indexing documents and performing complex queries, alongside a low-level client that acts as a flexible wrapper for sending raw HTTP requests to a cluster. The client features a fluent request builder that maps typed requests to REST API endpoints and a generic mapping layer to transform JSON responses into strongly typed objects. It employs a pluggable serialization mechanism to decouple the request-response lifecycle from speci
Full-text multi-table search application for Django. Easy to install and use, with good performance.
This project is a high-performance library designed for the similarity search and clustering of dense vectors across massive datasets. It functions as a vector similarity search engine, providing the necessary tools to organize complex numerical data into specialized structures that facilitate rapid retrieval and efficient querying of millions of records. The library distinguishes itself through a variety of advanced indexing and compression techniques, including hierarchical navigable small worlds for logarithmic time complexity and inverted file indexing to partition vector spaces into mana
Riot is a Go-based distributed search engine and indexing server designed for full-text indexing and retrieval. It functions as a retrieval system that sorts documents by relevance using BM25 ranking algorithms, term frequency, and inverse document frequency. The engine provides specialized support for the Chinese language, featuring concurrent text segmentation and phonetic Pinyin mapping to match romanized input with characters. It utilizes a distributed architecture that employs hash-based index sharding to balance data load and throughput across multiple server nodes. The system covers a
In the next months this client will be deprecated, so you should start migrating your codebase as soon as possible. We have built a migration guide that will help you move to the new client quickly, and if you have questions or need help, please open an issue.
Datamapper like Crystal ORM and adapter for Elasticsearch
This project is a Node.js client and database driver for Elasticsearch. It acts as a REST API wrapper that translates JavaScript method calls into HTTP requests to index, search, and manage documents within a distributed search and analytics engine. The library provides a programmatic interface for cluster management and data integration. It includes tools for discovering cluster nodes and managing indices to maintain connection stability and organize data storage. The client covers a broad range of operations, including document lifecycle management for CRUD actions, search query execution,