DCjanus
cang-jie
Rust

Chinese tokenizer for tantivy, based on jieba-rs

Last updated May 13, 2026
83
Stars
23
Forks
2
Issues
0
Stars/day
Attention Score
44
Language breakdown
No language data available.
β–Έ Files click to expand
README

cang-jie(δ»“ι’‰)

Crates.io latest document dependency status codecov

Chinese tokenizer integration for Tantivy, backed by jieba-rs.

Usage

use cangjie::{CangJieTokenizer, TokenizerOption, CANGJIE};
use jieba_rs::Jieba;
use std::sync::Arc;
use tantivy::{
    doc,
    schema::{IndexRecordOption, SchemaBuilder, TextFieldIndexing, TextOptions},
    Index,
};

fn main() -> tantivy::Result<()> { let mut schema_builder = SchemaBuilder::default(); let text_indexing = TextFieldIndexing::default() .settokenizer(CANGJIE) .setindexoption(IndexRecordOption::WithFreqsAndPositions); let text_options = TextOptions::default() .setindexingoptions(text_indexing) .set_stored(); let title = schemabuilder.addtextfield("title", textoptions); let schema = schema_builder.build();

let index = Index::createinram(schema); let tokenizer = CangJieTokenizer { worker: Arc::new(Jieba::new()), option: TokenizerOption::Default { hmm: false }, }; index.tokenizers().register(CANG_JIE, tokenizer);

let mut index_writer = index.writer(50 1024 1024)?; indexwriter.adddocument(doc! { title => "ε—δΊ¬ι•Ώζ±Ÿε€§ζ‘₯" })?; index_writer.commit()?;

Ok(()) }

See unicode_split.rs for a complete searchable example.

Maintenance

This crate uses Rust 2024 and requires Rust 1.88 or newer.

Install prek, then run the local checks with:

prek run --all-files
πŸ”— More in this category

Β© 2026 GitRepoTrend Β· DCjanus/cang-jie Β· Updated daily from GitHub