Быстрая полнотекстовая библиотека поисковых систем написана в ржавчине
Если вы ищете альтернативу Elasticsearch или Apache Solr, ознакомьтесь с Quickwit, нашей распределенной поисковой системой, построенной на Tantivy.
Tantivy ближе к Apache Lucene, чем к Elasticsearch или Apache Solr, в том смысле, что это не удобный сервер поисковых систем, а скорее ящик, который можно использовать для создания такой поисковой системы.
Тантив, на самом деле, сильно вдохновлен дизайном Лусена.
Эталон
Следующий этаж разбивает производительность для различных типов запросов/коллекций.
Ваш пробег будет варьироваться в зависимости от природы запросов и их нагрузки.

Подробности о тесте можно найти в этом хранилище.
Функции
- Полнотекстовый поиск
- Настраиваемый токенизатор (Stemming, доступный для 17 латинских языков) с поддержкой третьих сторон для китайцев (Tantivy-Jieba и Cang-Jie), японского (Lindera, Vaporetto и Tantivy-Tokenizer-Tiny-Segmenter) и корейский (Lindera + Lindera-Ko-Dic)
- Быстро (проверьте?)
- Крошечное время запуска (<10 мс), идеально подходит для инструментов командной строки
- BM25 выигрыш (так же, как и Lucene)
- Натуральный язык запросов (например
(michael AND jackson) OR "king of pop" ) - Поиск запросов фразы (например,
"michael jackson" ) - Индексация
- Многопользовательская индексация (индексация английской Википедии занимает <3 минуты на моем рабочем столе)
- Каталог MMAP
- SIMD Integer Compression, когда платформа/процессор включает набор инструкций SSE2
- Одиночные и многоцелевые поля U64, I64 и F64 (эквивалент значений DOC в Lucene)
-
&[u8] быстрые поля - Текст, i64, U64, F64, даты, IP, Bool и иерархические поля аспектов
- С магазином сжатых документов (LZ4, ZSTD, нет)
- Диапазон запросов
- Окрашенные поиск
- Настраиваемая индексация (необязательная частота и индексация положения)
- JSON Field
- Коллекционер агрегации: гистограмма, ведра диапазона, средняя и статистическая метрика
- Logmergepolicy с удалениями
- Поискатель теплый API
- Сырный логотип с лошадью
Нефузии
Распределенный поиск не выходит за рамки Tantivy, но если вы ищете эту функцию, посмотрите Quickwit.
Начиная
Tantivy работает на стабильной ржавчине и поддерживает Linux, MacOS и Windows.
- Простой поиск пример поиска Tantivy
- Tantivy-Cli и его учебник-
tantivy-cli -это фактический интерфейс командной строки, который позволяет вам легко создать поисковую систему, индексные документы и поиск через CLI или небольшой сервер с API REST. Это подводит вас через поисковую систему в Википедии через несколько минут. - Справочный документ для последней выпущенной версии
Как я могу поддержать этот проект?
Есть много способов поддержать этот проект.
- Используйте Tantivy и расскажите нам о своем опыте на Discord или по электронной почте ([email protected])
- Сообщать об ошибках
- Напишите сообщение в блоге
- Помогите с документацией, задавая вопросы или отправив PRS
- Внести код (вы можете присоединиться к нашему серверу Discord)
- Поговорим о Тантивие вокруг тебя
Содействующий код
Мы используем рабочий процесс запроса GitHub Pull: ссылайтесь на билет GitHub и/или включаем полное сообщение о коммите при открытии PR. Не стесняйтесь обновлять Changelog.md с вашим вкладом.
Токенизатор
При внедрении токенизатора для Tantivy зависят от ящика tantivy-tokenizer-api .
Клонировать и строить на месте
Тантивей компилизируется на стабильной ржавчине. Чтобы проверить и запустить тесты, вы можете просто запустить:
git clone https://github.com/quickwit-oss/tantivy.git
cd tantivy
cargo test
Компании, использующие Tantivy








Часто задаваемые вопросы
Могу ли я использовать Tantivy на других языках?
- Python → Tantivy-Py
- Ruby → Tantiny
Вы также можете найти другие привязки на GitHub, но они могут быть менее поддержаны.
Каковы некоторые примеры использования расторжения?
- Seshat: база данных/индексера сообщений матрицы
- Tantiny: крошечный полнотекстовый поиск Ruby
- LNX: адаптируемая, опечатка, толерантная поисковая система с API REST
- И еще!
В среднем, сколько быстрее является stantivy по сравнению с Lucene?
- Согласно нашему эталону задержки поиска, Tantivy примерно в 2 раза быстрее, чем Lucene.
Поддерживает ли Tantivy инкрементная индексация?
Как я могу отредактировать документы?
- Данные в Tantivy неизменны. Чтобы отредактировать документ, документ должен быть удален и переосмыслен.
Когда мои документы будут доступны для поиска во время индексации?
- Документы будут доступны для поиска после того, как
commit будет вызван IndexWriter . Существующие IndexReader также должны быть перезагружены, чтобы отразить изменения. Наконец, изменения видны только для недавно приобретенного Searcher .