#sqlite-extension #tokenizer #sqlite #extension #fts5

libsimple

Rust语言对simple库的绑定,simple是一个支持中文和拼音的SQLite3 fts5分词器

5个不稳定版本

0.3.1 2024年7月25日
0.3.0 2024年5月20日
0.2.2 2024年5月20日
0.2.1 2024年4月16日
0.1.0 2024年4月15日

#1026数据库接口

Download history 98/week @ 2024-04-17 187/week @ 2024-05-15 83/week @ 2024-05-22 1/week @ 2024-06-05 113/week @ 2024-07-24 3/week @ 2024-07-31

116 每月下载量

MIT 许可证

13MB
180K SLoC

C 178K SLoC // 0.2% comments C++ 1K SLoC // 0.1% comments Rust 124 SLoC

libsimple

Crate GitHub last commit GitHub issues GitHub pull requests GitHub

描述

Rust语言对simple库的绑定,simple是一个支持中文和拼音的SQLite3 fts5分词器。

用法

将以下内容添加到你的 Cargo.toml

[dependencies]
libsimple = "~0.3"

示例

use anyhow::Result;
use tempfile::tempdir;

fn main() -> Result<()> {
    libsimple::enable_auto_extension()?;
    let dir = tempdir()?;
    libsimple::release_dict(&dir)?;
    
    let conn = rusqlite::Connection::open_in_memory()?;
    libsimple::set_dict(&conn, &dir)?;
    conn.execute_batch("
        CREATE VIRTUAL TABLE d USING fts5(id, text, tokenize = 'simple');
        INSERT INTO d (id, text) VALUES (1, '中华人民共和国国歌');
        INSERT INTO d (id, text) VALUES (2, '周杰伦');
    ")?;
    assert_eq!(1, conn
        .query_row("SELECT id FROM d WHERE text MATCH jieba_query('中华国歌')", [], |row| row.get::<_, i64>(0))?
    );
    assert_eq!(2, conn
        .query_row("SELECT id FROM d WHERE text MATCH simple_query('zhoujiel')", [], |row| row.get::<_, i64>(0))?
    );
    Ok(())
}

许可证

MIT许可证下授权(LICENSEhttp://opensource.org/licenses/MIT

依赖

~22MB
~423K SLoC