Repolode
quickwit-oss

quickwit-oss/tantivy

Библиотека полнотекстового поиска на Rust, вдохновлённая Apache Lucene, для встраивания поиска в приложения.

Open source альтернатива:ElasticsearchApache Solr

Звёзды
16,247
Форки
1,017
Открытые issues
484
Последний коммит
23 часа назад

Что это?

Tantivy — crate на Rust для добавления полнотекстового поиска в собственное ПО. Это не отдельный поисковый сервер: разработчики используют API библиотеки, чтобы задавать схемы, индексировать документы и выполнять запросы. По устройству Tantivy близок к Apache Lucene и использует ранжирование BM25, как и Lucene.

В библиотеке есть основные компоненты для поиска: настраиваемые токенизаторы со стеммингом для 17 языков, использующих латиницу, поиск по фразам и диапазонам, естественный язык запросов с операторами AND/OR и фасетный поиск. Поддерживаются текстовые поля, целые числа, числа с плавающей точкой, даты, IP-адреса, булевы значения и JSON; fast fields работают по аналогии с doc values в Lucene. Документы можно хранить без сжатия или с использованием LZ4 и Zstd. Коллектор агрегаций предоставляет гистограммы, бакеты для диапазонов и базовую статистику.

Tantivy поддерживает инкрементальную и многопоточную индексацию и запускается менее чем за 10 мс, что удобно для инструментов командной строки. Для токенизации китайского и японского языков проект использует сторонние crate токенизаторов. Библиотека работает на стабильной версии Rust в Linux, macOS и Windows.

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

  • 01Ранжирование BM25, как в Lucene
  • 02Настраиваемые токенизаторы со стеммингом для 17 языков, использующих латиницу
  • 03Запросы по фразам и диапазонам, а также запросы на естественном языке с логическими операторами
  • 04Инкрементальная и многопоточная индексация
  • 05Fast fields, фасетный поиск и агрегации
  • 06Хранилище документов со сжатием LZ4 или Zstd либо без сжатия

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

  • Добавление полнотекстового поиска в приложение на Rust без отдельного сервера
  • Создание собственной поисковой утилиты командной строки с быстрым запуском
  • Индексация архивов электронной почты или сообщений для локального поиска
  • Встраивание поискового движка в сервис, которому нужны запросы в стиле Lucene

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

  1. 1

    Клонируйте репозиторий

    git clone https://github.com/quickwit-oss/tantivy.git
  2. 2

    Перейдите в каталог проекта

    cd tantivy
  3. 3

    Запустите тесты с помощью Cargo (stable Rust)

    cargo test

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

  • Это библиотека на Rust, а не готовый к запуску поисковый сервер, поэтому вам нужно самостоятельно создать на её основе поисковое приложение.
  • Распределённый поиск не входит в область применения; для этого используйте Quickwit.
  • Документы неизменяемы, поэтому для редактирования их нужно удалить и проиндексировать заново.
  • Токенизация китайского и японского языков зависит от сторонних crate.

Темы

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

Что такое tantivy?
Библиотека полнотекстового поиска на Rust, вдохновлённая Apache Lucene, для встраивания поиска в приложения. Tantivy — crate на Rust для добавления полнотекстового поиска в собственное ПО. Это не отдельный поисковый сервер: разработчики используют API библиотеки, чтобы задавать схемы, индексировать документы и выполнять запросы. По устройству Tantivy близок к Apache Lucene и использует ранжирование BM25, как и Lucene.
tantivy можно использовать бесплатно? Какая у него лицензия?
tantivy распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tantivy всё ещё поддерживается?
Активно поддерживается. Последний коммит в tantivy — 21 окт. 2026 г..
Для чего можно использовать tantivy?
Добавление полнотекстового поиска в приложение на Rust без отдельного сервера Создание собственной поисковой утилиты командной строки с быстрым запуском Индексация архивов электронной почты или сообщений для локального поиска Встраивание поискового движка в сервис, которому нужны запросы в стиле Lucene
Как установить tantivy?
Клонируйте репозиторий: git clone https://github.com/quickwit-oss/tantivy.git Перейдите в каталог проекта: cd tantivy Запустите тесты с помощью Cargo (stable Rust): cargo test
Где скачать tantivy?
Исходный код и инструкции по установке — на GitHub: https://github.com/quickwit-oss/tantivy

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

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

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

17,9 тыс.784GoOtherОбновлён в прошлом месяце