2个版本
0.3.1 | 2023年1月13日 |
---|---|
0.3.0 | 2023年1月12日 |
#10 in #estimation
每月下载量26次
在summavy中使用
260KB
6K SLoC
快速字段编解码器
该库包含各种快速字段编解码器,用于在tantivy中压缩/解压缩快速字段数据。
贡献
贡献非常简单。由于位打包是最简单的压缩器,您可以将其作为参考。
编解码器需要实现2个特质
- 实现
FastFieldCodecReader
的读取器来读取编解码器。 - 实现
FastFieldCodecSerializer
的序列化器,用于压缩估计和编解码器名称+ ID。
测试
一旦实现了特质,测试和基准测试的集成就非常简单(参见test_with_codec_data_sets
和bench.rs
)。
请确保将编解码器添加到main.rs中,该文件测试了不同数据集的压缩比和估计。您可以使用以下命令运行它:
cargo run --features bin
待办事项
- 添加实际数据集进行比较
- 添加编解码器以覆盖稀疏数据集
编解码器比较
+----------------------------------+-------------------+------------------------+
| | Compression Ratio | Compression Estimation |
+----------------------------------+-------------------+------------------------+
| Autoincrement | | |
+----------------------------------+-------------------+------------------------+
| LinearInterpol | 0.000039572664 | 0.000004396963 |
+----------------------------------+-------------------+------------------------+
| MultiLinearInterpol | 0.1477348 | 0.17275847 |
+----------------------------------+-------------------+------------------------+
| Bitpacked | 0.28126493 | 0.28125 |
+----------------------------------+-------------------+------------------------+
| Monotonically increasing concave | | |
+----------------------------------+-------------------+------------------------+
| LinearInterpol | 0.25003937 | 0.26562938 |
+----------------------------------+-------------------+------------------------+
| MultiLinearInterpol | 0.190665 | 0.1883836 |
+----------------------------------+-------------------+------------------------+
| Bitpacked | 0.31251436 | 0.3125 |
+----------------------------------+-------------------+------------------------+
| Monotonically increasing convex | | |
+----------------------------------+-------------------+------------------------+
| LinearInterpol | 0.25003937 | 0.28125438 |
+----------------------------------+-------------------+------------------------+
| MultiLinearInterpol | 0.18676 | 0.2040086 |
+----------------------------------+-------------------+------------------------+
| Bitpacked | 0.31251436 | 0.3125 |
+----------------------------------+-------------------+------------------------+
| Almost monotonically increasing | | |
+----------------------------------+-------------------+------------------------+
| LinearInterpol | 0.14066513 | 0.1562544 |
+----------------------------------+-------------------+------------------------+
| MultiLinearInterpol | 0.16335973 | 0.17275847 |
+----------------------------------+-------------------+------------------------+
| Bitpacked | 0.28126493 | 0.28125 |
+----------------------------------+-------------------+------------------------+
依赖项
~0.8–10MB
~93K SLoC