Crates.io | libsimple |
lib.rs | libsimple |
version | 0.3.4 |
source | src |
created_at | 2024-04-15 08:45:40.939039 |
updated_at | 2024-10-06 18:53:50.999486 |
description | Rust bindings to simple, a SQLite3 fts5 tokenizer which supports Chinese and PinYin. |
homepage | |
repository | https://github.com/xuxiaocheng0201/libsimple/ |
max_upload_size | |
id | 1209006 |
size | 25,458,596 |
Rust bindings to simple, a SQLite3 fts5 tokenizer which supports Chinese and PinYin.
Add this to your 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(())
}
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT)
This is the compatible version map between libsimple
and rusqlite
:
libsimple version |
rusqlite version |
---|---|
=0.3.4 | ~0.32 |
=0.3.3 | ~0.32 |
=0.3.2 | ~0.32 |
=0.3.1 | ~0.32 |
=0.3.0 | ~0.31 |
=0.2.2 | ~0.31 |
=0.2.1 | ~0.31 |
=0.2.0 | ~0.31 |
=0.1.0 | ~0.31 |