#文本搜索 #全文搜索 #事件 #索引器 #消息 #日志

seshat

支持全文搜索的矩阵消息日志矩阵

21 个稳定版本 (4 个主要版本)

4.0.0 2024年6月7日
3.0.0 2023年4月21日
2.4.0 2023年4月17日
2.3.3 2022年1月24日
0.1.0 2019年8月22日

189数据库接口

Download history 171/week @ 2024-04-26 164/week @ 2024-05-03 358/week @ 2024-05-10 188/week @ 2024-05-17 111/week @ 2024-05-24 126/week @ 2024-05-31 330/week @ 2024-06-07 185/week @ 2024-06-14 140/week @ 2024-06-21 100/week @ 2024-06-28 427/week @ 2024-07-05 110/week @ 2024-07-12 97/week @ 2024-07-19 131/week @ 2024-07-26 107/week @ 2024-08-02 67/week @ 2024-08-09

每月下载量414次

Apache-2.0

705KB
4K SLoC

Build Status Crates.io Documentation #seshat

Seshat

Seshat是Matrix事件的数据库和索引器。

其主要用途是作为Matrix客户端的全文搜索后端。

JavaScript绑定

Seshat提供JavaScript绑定,可在seshat-node子目录中找到。

用法

Seshat有两种操作模式:实时添加事件

use seshat::{Database, Event, Profile};
use tempfile::tempdir;

let tmpdir = tempdir().unwrap();
let mut db = Database::new(tmpdir.path()).unwrap();

/// Method to call for every live event that gets received during a sync.
fn add_live_event(event: Event, profile: Profile, database: &Database) {
    database.add_event(event, profile);
}
/// Method to call on every successful sync after live events were added.
fn on_sync(database: &mut Database) {
    database.commit().unwrap();
}

另一种模式是使用/room/{room_id}/messages Matrix API端点从房间历史中添加事件。此方法支持存储检查点,这些检查点会记住从/room/{room_id}/messages API获取事件的参数

database.add_historic_events(events, old_checkpoint, new_checkpoint)?;

一旦添加了事件,就可以进行搜索

let result = database.search("test", &SearchConfig::new()).unwrap();

开发

Seshat使用标准的cargo命令buildtest

您可以先安装pre-commit,然后执行pre-commit install以确保在提交时对您的作品进行代码审查。

依赖项

~55MB
~888K SLoC