Expand description
§libsimple
§Description
Rust bindings to simple, a SQLite3 fts5 tokenizer which supports Chinese and PinYin.
§Usage
Add this to your Cargo.toml:
[dependencies]
libsimple = "~0.2"
§Example
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(())
}§License
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT)
Modules§
- Raw FFI bindings to simple.
Functions§
- Enable sqlite3_simple_init() as an auto extension.
- release_dict
jiebaRelease dict files into directory. Only need to call this method once. - set_dict
jiebaOnly need to call once for each connection, but must call this function before using sqljieba_query.