Biblioteca rápida de motor de búsqueda de texto completo escrita en óxido
Si está buscando una alternativa a Elasticsearch o Apache Solr, consulte QuickWit, nuestro motor de búsqueda distribuido construido sobre Tantivy.
Tantivy está más cerca de Apache Lucene que de Elasticsearch o Apache Solr en el sentido de que no es un servidor de motor de búsqueda de los estantes, sino una caja que se puede usar para construir dicho motor de búsqueda.
Tantivy está, de hecho, fuertemente inspirado en el diseño de Lucene.
Punto de referencia
El siguiente punto de referencia desglosa el rendimiento de diferentes tipos de consultas/colecciones.
Su kilometraje variará según la naturaleza de las consultas y su carga.

Los detalles sobre el punto de referencia se pueden encontrar en este repositorio.
Características
- Búsqueda de texto completo
- Tokenizer configurable (Stemming disponible para 17 idiomas latinos) con un apoyo de terceros para chino (Tantivy-Jieba y Cang-Jie), japonés (Lindera, Vaporetto y Tantivy-Tokenizer-Segmenter) y coreano (Lindera + Lindera-ko-dic-builder)
- Rápido (¿Echa un vistazo al? Benchmark?)
- Pequeño tiempo de inicio (<10 ms), perfecto para herramientas de línea de comandos
- BM25 puntuación (lo mismo que Lucene)
- Lenguaje de consulta natural (por ejemplo
(michael AND jackson) OR "king of pop" ) - Búsqueda de consultas de frases (por ejemplo,
"michael jackson" ) - Indexación incremental
- Indexación multiproceso (indexación de wikipedia en inglés toma <3 minutos en mi escritorio)
- Directorio mmap
- SIMD Integer Compression Cuando la plataforma/CPU incluye el conjunto de instrucciones SSE2
- Campos rápidos U64, i64 y F64 de valor único y multivalización (equivalente a valores de DOC en Lucene)
-
&[u8] campos rápidos - Texto, i64, u64, f64, fechas, IP, bool y campos de faceta jerárquicos
- Tienda de documentos comprimido (LZ4, ZSTD, Ninguno)
- Consultas de rango
- Búsqueda facial
- Indexación configurable (frecuencia de término opcional e indexación de posición)
- Campo JSON
- Coleccionista de agregación: histograma, cubos de rango, promedio y métricas de estadísticas
- LogmergePolicy con eliminados
- API calentadora de búsqueda
- Logotipo de queso con un caballo
No características
La búsqueda distribuida está fuera del alcance de Tantivy, pero si está buscando esta función, consulte QuickWit.
Empezando
Tantivy trabaja en óxido estable y admite Linux, macOS y Windows.
- Ejemplo de búsqueda simple de Tantivy
- Tantivy-CLI y su tutorial:
tantivy-cli es una interfaz de línea de comandos real que le facilita crear un motor de búsqueda, documentos de índice y buscar a través de la CLI o un servidor pequeño con una API REST. Te guía a través de un motor de búsqueda de Wikipedia en funcionamiento en unos minutos. - Doc de referencia para la última versión lanzada
¿Cómo puedo apoyar este proyecto?
Hay muchas formas de apoyar este proyecto.
- Use Tantivy y cuéntenos sobre su experiencia en Discord o por correo electrónico ([email protected])
- Informar errores
- Escribe una publicación de blog
- Ayuda con la documentación haciendo preguntas o enviando PRS
- Contribuir código (puede unirse a nuestro servidor Discord)
- Habla de Tantivy a tu alrededor
Código contribuyente
Utilizamos el flujo de trabajo de solicitud de extracción de GitHub: haga referencia a un boleto de GitHub y/o incluya un mensaje de confirmación integral al abrir un PR. Siéntase libre de actualizar ChangeLog.md con su contribución.
Tokenizador
Al implementar un tokenizador para Tantivy, depende de la caja tantivy-tokenizer-api .
Clon y construir localmente
Tantivy se compila sobre óxido estable. Para ver y ejecutar pruebas, simplemente puede ejecutar:
git clone https://github.com/quickwit-oss/tantivy.git
cd tantivy
cargo test
Empresas que usan Tantivy








Preguntas frecuentes
¿Puedo usar Tantivy en otros idiomas?
- Python → Tantivy-Py
- Ruby → Tantiny
También puede encontrar otras enlaces en GitHub, pero pueden mantenerse menos mantenidos.
¿Cuáles son algunos ejemplos de uso tantivy?
- Seshat: una base de datos de mensajes de matriz/indexador
- Tantiny: pequeña búsqueda de texto completo para Ruby
- LNX: motor de búsqueda adaptable y tolerante a tipo con una API REST
- ¡Y más!
En promedio, ¿cuánto más rápido es tantivy en comparación con Lucene?
- Según nuestro punto de referencia de latencia de búsqueda, Tantivy es aproximadamente 2 veces más rápido que Lucene.
¿Tantivy apoya la indexación incremental?
¿Cómo puedo editar documentos?
- Los datos en Tantivy son inmutables. Para editar un documento, el documento debe eliminarse y reindexarse.
¿Cuándo se pueden buscar mis documentos durante la indexación?
- Los documentos se pueden buscar después de que se llame a una
commit en un IndexWriter . IndexReader S también deberá volver a cargar para reflejar los cambios. Finalmente, los cambios solo son visibles para Searcher recién adquirido.