빠른 전체 텍스트 검색 엔진 라이브러리 녹음으로 작성되었습니다
Elasticsearch 또는 Apache Solr의 대안을 찾고 있다면 Tantivy 위에 구축 된 분산 검색 엔진 인 Quickwit을 확인하십시오.
Tantivy는 Elasticsearch 또는 Apache Solr보다는 Apache Lucene에 더 가깝습니다. Surnf-the Surne Search Engine 서버가 아니라 이러한 검색 엔진을 구축하는 데 사용할 수있는 상자입니다.
Tantivy는 실제로 Lucene의 디자인에서 강력하게 영감을 받았습니다.
기준
다음 벤치 마크는 다양한 유형의 쿼리/컬렉션의 성능을 분류합니다.
마일리지는 쿼리의 특성과 하중에 따라 다릅니다.

벤치 마크에 대한 자세한 내용은이 저장소에서 찾을 수 있습니다.
특징
- 전체 텍스트 검색
- 중국어 (Tantivy-Jieba 및 Cang-Jie), 일본어 (Lindera, Vaporetto 및 Tantivy-Tokenizer-Tiny-Segmenter) 및 Korean (Lindera + Lindera-Ko-Dic-Duilder)에 대한 제 3 자 지원을 갖춘 구성 가능한 토큰 화기 (17 개의 라틴어 언어에 사용할 수 있음).
- FAST (벤치 마크를 확인하십시오?)
- 작은 시작 시간 (<10ms), 명령 줄 도구에 적합합니다
- BM25 득점 (루센과 동일)
- 자연 쿼리 언어 (예
(michael AND jackson) OR "king of pop" ) - 문구 쿼리 검색 (예 :
"michael jackson" ) - 증분 인덱싱
- Multithreaded Indexing (Indexing English Wikipedia는 데스크탑에서 <3 분이 걸립니다)
- MMAP 디렉토리
- 플랫폼/CPU에 SSE2 명령 세트가 포함 된 경우 SIMD 정수 압축
- 단일 가치 및 다중 자산 U64, I64 및 F64 빠른 필드 (루센의 DOC 값에 해당)
-
&[u8] 빠른 필드 - Text, i64, U64, F64, 날짜, IP, Bool 및 계층 적 패싯 필드
- 압축 문서 저장소 (LZ4, ZSTD, 없음)
- 범위 쿼리
- 측면 검색
- 구성 가능한 색인화 (선택적 기준 빈도 및 위치 인덱싱)
- JSON 필드
- 집계 수집기 : 히스토그램, 범위 버킷, 평균 및 통계 메트릭
- 삭제가있는 LogmergePolicy
- 검색 자 따뜻한 API
- 말과 치즈 로고
비 기능
분산 검색은 Tantivy의 범위를 벗어나지만이 기능을 찾고 있다면 Quickwit을 확인하십시오.
시작하기
Tantivy는 안정적인 녹에서 작동하며 Linux, MacOS 및 Windows를 지원합니다.
- Tantivy의 간단한 검색 예제
- Tantivy-Cli 및 자습서 -Tantivy
tantivy-cli 는 실제 명령 줄 인터페이스로, CLI 또는 REST API가있는 작은 서버를 통해 검색 엔진, 인덱스 문서를 쉽게 만들 수 있습니다. 그것은 위키 백과 검색 엔진을 얻고 몇 분 안에 실행하는 것을 안내합니다. - 마지막 릴리스 버전에 대한 참조 문서
이 프로젝트를 어떻게 지원할 수 있습니까?
이 프로젝트를 지원하는 방법에는 여러 가지가 있습니다.
- Tantivy를 사용하고 불화 또는 이메일로 귀하의 경험에 대해 알려주십시오 ([email protected]).
- 버그를보고합니다
- 블로그 게시물을 작성하십시오
- 질문을하거나 PR을 제출하여 문서에 도움을줍니다
- 코드 기여 (Discord 서버에 가입 할 수 있음)
- 주변의 Tantivy에 대해 이야기하십시오
기여 코드
Github Pull Request Workflow : Github 티켓 참조 및/또는 PR을 열 때 포괄적 인 커밋 메시지를 포함시킵니다. 귀하의 기여로 Changelog.md를 자유롭게 업데이트하십시오.
토큰 화기
Tantivy 용 토큰 화제를 구현할 때는 tantivy-tokenizer-api 상자에 의존합니다.
클론하고 로컬로 제작하십시오
Tantivy는 안정적인 녹에 컴파일합니다. 체크 아웃하고 테스트를 실행하려면 간단히 실행할 수 있습니다.
git clone https://github.com/quickwit-oss/tantivy.git
cd tantivy
cargo test
Tantivy를 사용하는 회사








FAQ
다른 언어로 Tantivy를 사용할 수 있습니까?
- Python → Tantivy-Py
- 루비 → 탄티니
GitHub에서 다른 바인딩을 찾을 수 있지만 유지 관리가 덜 될 수 있습니다.
Tantivy 사용의 몇 가지 예는 무엇입니까?
- SESHAT : 매트릭스 메시지 데이터베이스/인덱서
- Tantiny : Ruby에 대한 작은 전체 텍스트 검색
- LNX : REST API가있는 적응성, 오타 허용 검색 엔진
- 그리고 더!
평균적으로 Lucene에 비해 Tantivy는 얼마나 빠르나요?
- 검색 대기 시간 벤치 마크에 따르면 Tantivy는 Lucene보다 약 2 배 빠릅니다.
Tantivy는 증분 색인화를 지원합니까?
문서를 어떻게 편집 할 수 있습니까?
- Tantivy의 데이터는 불변입니다. 문서를 편집하려면 문서를 삭제하고 다시 표시해야합니다.
인덱싱 중에 내 문서는 언제 검색 할 수 있습니까?
-
IndexWriter 에 commit 호출 된 후 문서를 검색 할 수 있습니다. 변경 사항을 반영하려면 기존 IndexReader S도 다시로드해야합니다. 마지막으로, 변경은 새로 인수 한 Searcher 에게만 볼 수 있습니다.