Schnelle Volltext-Suchmaschinenbibliothek in Rost geschrieben
Wenn Sie nach einer Alternative zu Elasticsearch oder Apache Solr suchen, besuchen Sie QuickWit, unsere verteilte Suchmaschine, die auf Tantivy aufgebaut ist.
Tantivy ist Apache Lucene näher als Elasticsearch oder Apache Solr in dem Sinne, dass es sich nicht um einen Suchmaschinenserver außerhalb der Shelf handelt, sondern um eine Kiste, mit der eine solche Suchmaschine erstellt werden kann.
Tantivy ist in der Tat stark von Lucenes Design inspiriert.
Benchmark
Die folgende Benchmark -Leistung unterteilt die Leistung für verschiedene Arten von Abfragen/Sammlungen.
Ihre Kilometerleistung hängt von der Art der Fragen und ihrer Ladung ab.

Details zum Benchmark finden Sie in diesem Repository.
Merkmale
- Volltext-Suche
- Konfigurierbares Tokenizer (für 17 lateinische Sprachen erhältlich) mit Unterstützung von Drittanbietern für Chinese (Tantivy-Jieba und Cang-Jie), Japanisch (Lindera, Vaporetto und Tantivy-Tokenizer-Tiny-Segmenter) und Koreaner (Lintera + Lindera-Ko-Dic-Builder))
- Schnell (schauen Sie sich den Benchmark an?)
- Winzige Startzeit (<10 ms), perfekt für Befehlszeilenwerkzeuge
- BM25 -Wertung (das gleiche wie Lucene)
- Natürliche Abfragesprache (z
(michael AND jackson) OR "king of pop" ) - Ausdrucksuche (z. B.
"michael jackson" ) - Inkrementelle Indizierung
- Multithread -Indexierung (Indexierung englischer Wikipedia dauert <3 Minuten auf meinem Desktop)
- MMAP -Verzeichnis
- SIMD Ganzzahlkomprimierung Wenn die Plattform/CPU den SSE2 -Befehlssatz enthält
- Einzelwert und mehrfacher U64-, 164- und F64 -Schnellfelder (gleichwertig der DOC -Werte in Lucene)
-
&[u8] schnelle Felder - Text, i64, U64, F64, Daten, IP-, Bool- und hierarchische Facettenfelder
- Komprimierter Dokumentgeschäft (LZ4, ZSTD, NONE)
- Reichweite Abfragen
- Facettensuchung
- Konfigurierbare Indizierung (optionale Termfrequenz und Positionsindexierung)
- JSON Field
- Aggregationskollektor: Histogramm, Reichweite, Durchschnitts- und Statistikmetriken
- Logmergepolicy mit Deletten
- Sucherwärmungs -API
- Kitschiges Logo mit einem Pferd
Nicht-Features
Die verteilte Suche ist nicht im Rahmen des Tantivy -Rahmens. Wenn Sie jedoch nach dieser Funktion suchen, schauen Sie sich QuickWit an.
Erste Schritte
Tantivy arbeitet an stabilem Rost und unterstützt Linux, MacOS und Windows.
- Tantivys einfaches Suchbeispiel
- Tantivy-CLI und sein Tutorial-
tantivy-cli ist eine tatsächliche Befehlszeilenschnittstelle, mit der Sie über die CLI oder einen kleinen Server mit einer REST-API eine Suchmaschine, Indexdokumente und Suchdokumente erstellen können. Es führt Sie durch eine Wikipedia -Suchmaschine in wenigen Minuten. - Referenzdokument für die letzte veröffentlichte Version
Wie kann ich dieses Projekt unterstützen?
Es gibt viele Möglichkeiten, dieses Projekt zu unterstützen.
- Verwenden Sie Tantivy und erzählen Sie uns von Ihren Erfahrungen mit Discord oder per E -Mail ([email protected])
- Fehler melden
- Schreiben Sie einen Blog -Beitrag
- Hilfe bei der Dokumentation, indem Sie Fragen stellen oder PRS einreichen
- Code beitragen (Sie können sich unserem Discord -Server anschließen)
- Sprechen Sie über Tantivy um Sie herum
Code beitragen
Wir verwenden den GitHub Pull Request Workflow: Referenz auf ein Github -Ticket und/oder enthalten eine umfassende Commit -Nachricht, wenn Sie eine PR eröffnen. Fühlen Sie sich frei, ChangeLog.md mit Ihrem Beitrag zu aktualisieren.
Tokenizer
Bei der Implementierung eines Tokenizers für Tantivy hängt von der Kiste tantivy-tokenizer-api ab.
Klonen und lokal bauen
Tantivy Compiles auf stabilen Rost. Um Tests zu überprüfen und auszuführen, können Sie einfach ausführen:
git clone https://github.com/quickwit-oss/tantivy.git
cd tantivy
cargo test
Unternehmen, die Tantivy verwenden








FAQ
Kann ich Tantivy in anderen Sprachen verwenden?
- Python → Tantivy-Py
- Ruby → Tantiny
Sie können auch andere Bindungen auf GitHub finden, aber sie können weniger aufrechterhalten werden.
Was sind einige Beispiele für den tantivischen Gebrauch?
- Seshat: Eine Matrixnachrichtendatenbank/Indexer
- Tantiny: Tiny Volltext-Suche nach Ruby
- LNX: Anpassungsfähig, typo -tolerante Suchmaschine mit einer REST -API
- Und noch mehr!
Wie viel schneller ist im Durchschnitt tantivisch im Vergleich zu Lucene?
- Laut unserer Suchlatenz -Benchmark ist Tantivy ungefähr 2x schneller als Lucene.
Unterstützt die inkrementelle Indizierung der Tantivy unterstützt?
Wie kann ich Dokumente bearbeiten?
- Daten in Tantivy sind unveränderlich. Um ein Dokument zu bearbeiten, muss das Dokument gelöscht und geändert werden.
Wann können meine Dokumente während der Indexierung durchsucht werden?
- Dokumente können nach einem
commit durchsucht werden IndexWriter Bestehende IndexReader müssen ebenfalls neu geladen werden, um die Änderungen widerzuspiegeln. Schließlich sind Änderungen nur für den neu erworbenen Searcher sichtbar.