Perpustakaan mesin pencari teks lengkap cepat ditulis dengan karat
Jika Anda mencari alternatif untuk Elasticsearch atau Apache Solr, lihat Quickwit, mesin pencari terdistribusi kami yang dibangun di atas TANTIVY.
Tantivy lebih dekat dengan Apache Lucene daripada Elasticsearch atau Apache Solr dalam arti itu bukan server mesin pencari di luar rak, melainkan peti yang dapat digunakan untuk membangun mesin pencari seperti itu.
Tantivy, pada kenyataannya, sangat terinspirasi oleh desain Lucene.
Benchmark
Benchmark berikut memecah kinerja untuk berbagai jenis pertanyaan/koleksi.
Jarak tempuh Anda akan bervariasi tergantung pada sifat pertanyaan dan bebannya.

Detail tentang patokan dapat ditemukan di repositori ini.
Fitur
- Pencarian teks lengkap
- Tokenizer yang dapat dikonfigurasi (batang tersedia untuk 17 bahasa Latin) dengan dukungan pihak ketiga untuk Cina (tantivy-jieba dan cang-jie), Jepang (Lindera, Vaporetto, dan Tantivy-Tokenizer-Tiny-Semmenter) dan Korea (Lindera + Lindera-Ko-Dic-Dic-Builder)) dan Korea (Lindera + Lindera-Ko-Dic-Dic))) dan Korea (Lindera + Lindera-Ko-Dic-Builder)) dan Korea (Lindera + Lindera-Ko-Dic)))) dan Lindera + Lindera-Ko-Dic)))) dan Lindera)
- Cepat (lihat? Benchmark?)
- Waktu startup kecil (<10ms), sempurna untuk alat baris perintah
- Skor BM25 (sama seperti Lucene)
- Bahasa Permintaan Alami (misalnya
(michael AND jackson) OR "king of pop" ) - Pencarian ungkapan ungkapan (misalnya
"michael jackson" ) - Pengindeksan tambahan
- Pengindeksan multithreaded (pengindeksan wikipedia bahasa Inggris memakan waktu <3 menit di desktop saya)
- Direktori MMAP
- Kompresi Integer SIMD Saat platform/CPU menyertakan set instruksi SSE2
- Bidang cepat yang dihargai dan multinasikan U64, I64, dan F64 (setara dengan nilai DOC di Lucene)
-
&[u8] FASEL CEPAT - Teks, I64, U64, F64, Tanggal, IP, Bool, dan Bidang Facet Hierarkis
- Toko Dokumen Terkompresi (LZ4, ZSTD, Tidak Ada)
- Rentang kueri
- Pencarian faceted
- Pengindeksan yang dapat dikonfigurasi (frekuensi istilah opsional dan pengindeksan posisi)
- Lapangan JSON
- Kolektor agregasi: histogram, ember jangkauan, rata -rata, dan metrik statistik
- Logmergepolicy dengan penghapusan
- Pencari API yang lebih hangat
- Logo Cheesy dengan kuda
Non-fitur
Pencarian terdistribusi berada di luar ruang lingkup Tantivy, tetapi jika Anda mencari fitur ini, lihat Quickwit.
Memulai
Tantivy bekerja pada karat yang stabil dan mendukung Linux, MacOS, dan Windows.
- Contoh pencarian sederhana Tantivy
- Tantivy-Cli dan tutorinya-
tantivy-cli adalah antarmuka baris perintah yang sebenarnya yang memudahkan Anda membuat mesin pencari, dokumen indeks, dan mencari melalui CLI atau server kecil dengan API REST. Itu memandu Anda dengan mendapatkan mesin pencari Wikipedia dan berjalan dalam beberapa menit. - Referensi Doc untuk versi yang dirilis terakhir
Bagaimana cara mendukung proyek ini?
Ada banyak cara untuk mendukung proyek ini.
- Gunakan Tantivy dan beri tahu kami tentang pengalaman Anda di Discord atau melalui email ([email protected])
- Laporkan bug
- Tulis posting blog
- Membantu dokumentasi dengan mengajukan pertanyaan atau mengirimkan PRS
- Kontribusi Kode (Anda dapat bergabung dengan Server Perselisihan kami)
- Bicara tentang Tantivy di sekitar Anda
Kode yang berkontribusi
Kami menggunakan alur kerja Permintaan Tarik GitHub: Referensi tiket GitHub dan/atau sertakan pesan komit komprehensif saat membuka PR. Jangan ragu untuk memperbarui changelog.md dengan kontribusi Anda.
Tokenizer
Saat mengimplementasikan tokenizer untuk Tantivy bergantung pada peti tantivy-tokenizer-api .
Klon dan bangun secara lokal
Kompilasi tanttivy pada karat stabil. Untuk memeriksa dan menjalankan tes, Anda bisa menjalankan:
git clone https://github.com/quickwit-oss/tantivy.git
cd tantivy
cargo test
Perusahaan yang menggunakan Tantivy








FAQ
Bisakah saya menggunakan bahasa lain dalam bahasa lain?
- Python → Tantivy-py
- Ruby → Tantiny
Anda juga dapat menemukan binding lain di GitHub tetapi mungkin kurang terawat.
Apa saja contoh penggunaan yang menggoda?
- Seshat: database/pengindeks pesan matriks
- Tantiny: Pencarian teks lengkap kecil untuk Ruby
- LNX: Mesin pencari toleran yang mudah beradaptasi dengan API REST
- Dan banyak lagi!
Rata -rata, seberapa cepat tantivy dibandingkan dengan Lucene?
- Menurut tolok ukur latensi pencarian kami, Tantivy sekitar 2x lebih cepat dari Lucene.
Apakah Tantivy mendukung pengindeksan tambahan?
Bagaimana cara mengedit dokumen?
- Data di Tantivy tidak dapat diubah. Untuk mengedit dokumen, dokumen perlu dihapus dan diindeks ulang.
Kapan dokumen saya dapat dicari selama pengindeksan?
- Dokumen akan dapat dicari setelah
commit dipanggil pada IndexWriter . IndexReader yang ada juga perlu dimuat ulang untuk mencerminkan perubahan. Akhirnya, perubahan hanya terlihat oleh Searcher yang baru diakuisisi.