Repolode
ankane

ankane/searchkick

Библиотека поиска для Ruby on Rails, которая добавляет полнотекстовый поиск в модели Active Record и Mongoid с помощью Elasticsearch или OpenSearch.

Звёзды
6,720
Форки
761
Открытые issues
10
Последний коммит
10 дней назад

Что это?

Searchkick — это gem для Ruby, который связывает модели Active Record и Mongoid с Elasticsearch или OpenSearch. Чтобы добавить полнотекстовый поиск, достаточно указать одну строку в модели. Библиотека обрабатывает основы слов, специальные символы, лишние пробелы, опечатки и пользовательские синонимы: например, по запросу «tomatoes» можно найти «tomato», а по «zuchini» — «zucchini».

Для запросов предусмотрен цепочечный интерфейс в стиле SQL: фильтры where, сортировка, пагинация, повышение релевантности, агрегации, подсветка, автодополнение, подсказки и геопоиск. Индексацию можно выполнять синхронно, асинхронно, через очередь на Redis или вручную. Переиндексацию можно выполнять параллельно и без простоя.

Searchkick поддерживает Elasticsearch 8 и 9, а также OpenSearch 2 и 3. Результаты поиска можно персонализировать для каждого пользователя и настраивать с помощью данных о конверсиях из Searchjoy.

Ключевые возможности

  • 01Стемминг, устойчивость к опечаткам и пользовательские синонимы из коробки
  • 02Цепочечные запросы в стиле SQL с where, order, limit и offset
  • 03Автодополнение, подсказки «вы имели в виду» и подсветка
  • 04Агрегации, повышение релевантности по полю, давности и расстоянию, а также персонализация результатов для каждого пользователя
  • 05Геопоиск и поиск по геоформам
  • 06Переиндексация без простоя: в асинхронном режиме, через очередь и параллельно

Сценарии использования

  • Добавление поиска товаров или контента в Rails-приложение для электронной коммерции или каталог
  • Создание автодополнения для большой модели на Active Record или Mongoid
  • Фасетная фильтрация результатов поиска с помощью агрегаций
  • Поиск по местоположению для ресторанов или магазинов

Быстрый старт

  1. 1

    Установите и запустите OpenSearch с помощью Homebrew

    brew install opensearch && brew services start opensearch
  2. 2

    Добавьте searchkick и клиент Elasticsearch или OpenSearch в Gemfile

    gem "searchkick"
  3. 3

    Добавьте searchkick в модель и проиндексируйте её данные

    Product.reindex

Что важно знать

  • Необходим работающий сервер Elasticsearch или OpenSearch.
  • Для Elasticsearch 7 и OpenSearch 1 требуется предыдущая версия 5.5.2.

Темы

Частые вопросы

Что такое searchkick?
Библиотека поиска для Ruby on Rails, которая добавляет полнотекстовый поиск в модели Active Record и Mongoid с помощью Elasticsearch или OpenSearch. Searchkick — это gem для Ruby, который связывает модели Active Record и Mongoid с Elasticsearch или OpenSearch. Чтобы добавить полнотекстовый поиск, достаточно указать одну строку в модели. Библиотека обрабатывает основы слов, специальные символы, лишние пробелы, опечатки и пользовательские синонимы: например, по запросу «tomatoes» можно найти «tomato», а по «zuchini» — «zucchini».
searchkick можно использовать бесплатно? Какая у него лицензия?
searchkick распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
searchkick всё ещё поддерживается?
Активно поддерживается. Последний коммит в searchkick — 27 окт. 2026 г..
Для чего можно использовать searchkick?
Добавление поиска товаров или контента в Rails-приложение для электронной коммерции или каталог Создание автодополнения для большой модели на Active Record или Mongoid Фасетная фильтрация результатов поиска с помощью агрегаций Поиск по местоположению для ресторанов или магазинов
Как установить searchkick?
Установите и запустите OpenSearch с помощью Homebrew: brew install opensearch && brew services start opensearch Добавьте searchkick и клиент Elasticsearch или OpenSearch в Gemfile: gem "searchkick" Добавьте searchkick в модель и проиндексируйте её данные: Product.reindex
Где скачать searchkick?
Исходный код и инструкции по установке — на GitHub: https://github.com/ankane/searchkick

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Лёгкий полнотекстовый поисковый движок на Go, распространяемый одним бинарным файлом и предлагаемый как более простая альтернатива Elasticsearch для поиска в приложениях.

17,9 тыс.+6 за неделю782GoOtherАктивно поддерживаетсяОбновлён 2 месяца назад

Открытый фреймворк электронной коммерции на Ruby on Rails для разработчиков, которые хотят создать собственный интернет-магазин и полностью контролировать его.

5,3 тыс.1,4 тыс.RubyBSD-3-ClauseАктивно поддерживаетсяОбновлён вчера

Универсальная библиотека пагинации для Ruby: поддерживает пагинацию по смещению, ключам, поиску и календарю в Rails, Sinatra и других фреймворках.

5 тыс.447RubyMITАктивно поддерживаетсяОбновлён 17 часов назад