#搜索索引 #索引 #索引化 #搜索 #生成 #elasticlunr #lunr

elasticlunr-rs

将 elasticlunr.js 部分移植到 Rust,用于生成静态文档搜索索引

25 个稳定版本 (3 个主要版本)

3.0.2 2023年3月17日
3.0.1 2022年7月24日
3.0.0 2022年6月2日
2.3.14 2021年11月16日
0.2.1 2017年11月21日

#45数据库接口

Download history 19962/week @ 2024-03-14 20921/week @ 2024-03-21 19578/week @ 2024-03-28 18757/week @ 2024-04-04 18472/week @ 2024-04-11 20688/week @ 2024-04-18 19754/week @ 2024-04-25 18493/week @ 2024-05-02 17821/week @ 2024-05-09 18665/week @ 2024-05-16 19938/week @ 2024-05-23 18632/week @ 2024-05-30 21724/week @ 2024-06-06 19238/week @ 2024-06-13 18142/week @ 2024-06-20 16261/week @ 2024-06-27

每月下载量 78,765
15 个 Crates 中使用 (直接使用 10 个)

MIT/Apache

145KB
6K SLoC

elasticlunr-rs

Build Status Documentation Crates.io Maintenance MSRV

elasticlunr.js 部分移植到 Rust,旨在用于生成兼容的搜索索引。

此库被被动维护以支持现有用户。鼓励新用户使用其他库,如 stork

示例

use std::fs::File;
use std::io::Write;
use elasticlunr::Index;

let mut index = Index::new(&["title", "body"]);
index.add_doc("1", &["This is a title", "This is body text!"]);
// Add more documents...
let mut file = File::create("out.json").unwrap();
file.write_all(index.to_json_pretty().as_bytes());

最低支持的 Rust 版本

1.60.0

更改最低支持的 Rust 版本在 semver 的情况下不被视为破坏性更改。

支持版本受我们的传递依赖项支持的版本限制。如果您的 Cargo.lock 中有这些旧版本,则较早的 rustc 版本可能可以工作,但这尚未经过测试。

语言

此库包含对非英语语言的可选支持,请参阅 Cargo.toml 中的功能。与 JavaScript 版本一样,语言支持旨在与 lunr-languages 插件 兼容。某些语言使用修改后的版本,该版本包含在存储库的 js 目录中。

许可协议

本存储库在以下条款下提供:

任选其一。

除非您明确声明,否则您有意提交以包含在本工作中并由您定义的 Apache-2.0 许可证的工作,将按照上述方式双重许可,不附加任何额外的条款或条件。

包含从 elasticlunr.js 端口导入的代码版权 (C) 2017 Wei Song,在许可下使用。有关详细信息,请参阅 LICENSE-JS。

包含从 stopwords-filter 端口导入的停用词列表版权 (C) 2012 David J. Brenes,在许可下使用。有关详细信息,请参阅 LICENSE-WORDS。

存储库中捆绑的 JavaScript 代码(不包括在 cargo 包中)可能具有其他许可协议。

依赖项

~3–15MB
~152K SLoC