TODO 为 ClickHouse 开发并集成 TantivySearch 全文索引
全文索引? 全文索引可以加速文本搜索过程 TODOs ClickHouse 集成 TantivySearch 工作概览 TantivySearch 项目结构 TantivySearch 不同搜索策略的实现(设计模式之策略模式) ClickHouse 集成 tantivy-search 库 ClickHouse 对 FTS 索引的管理逻辑 ClickHouse ...
全文索引? 全文索引可以加速文本搜索过程 TODOs ClickHouse 集成 TantivySearch 工作概览 TantivySearch 项目结构 TantivySearch 不同搜索策略的实现(设计模式之策略模式) ClickHouse 集成 tantivy-search 库 ClickHouse 对 FTS 索引的管理逻辑 ClickHouse ...
题目 原题 525.连续数组 解题 1.未优化版本 滑动窗口思想 最先想到的是使用滑动窗口的方法,先使用 preOneCount[i] 计算 [0,i] 区间内 1 出现的次数,然后通过从大往小遍历滑动窗口 window 去检测窗口是否合法(即窗口所在的区间内部 1 和 0 的数量是否一致) 代码如下: class Solution { public int fi...
题目 原题 54.螺旋矩阵 解题 进行螺旋遍历🌀的本质实际上是找到每个需要遍历的边 遍历最上侧的边 top, 遍历完毕后将 top++。 遍历最右侧的边 right, 遍历完毕后将 right–。 遍历最底部的边 bottom, 遍历完毕后将 bottom–。 遍历最左侧的边 left, 遍历完毕后将 left++。 注意: 每次在遍历的时候都将...
题目 原题 1074.元素和为目标值的子矩阵数量 解题 这个题目直接使用暴力方法竟然能 AC… 暴力思路是:先计算出二维数组的前缀和并存储下来,然后使用 O(n^4) 枚举所有可能出现的子矩阵位置(枚举左上角的坐标和右下角的坐标即可),然后通过存储的前缀和去计算出每个子矩阵的 sum,判断是否符合 target。 现在需要探讨的是使用 HashMap 去优化这个 O(n^4...
题目 原题 477.汉明距离总和 题解 直接使用暴力方法计算 total hamming distance 会超时: class Solution { public int totalHammingDistance(int[] nums) { int res =0; for (int left =0; left< nums.len...
2024/11
红黑树平衡性原则 根结点是黑色(有的版本对根结点的颜色没有强制要求) 所有节点只能是红色或者黑色 所有的叶子节点都是黑色,这里说的叶子结点是 NULL 叶子结点 如果一个节点是红色的,那么它的两个孩子只能是黑色的(即不能同时出现两个连续的红色节点) 从任意的一个节点出发,到它的所有叶子节点路径上都包含相同数量的黑色节点 另外,看似使用全部黑色的节点也符合红黑树的规...
存储字节数组(u8)数组时,涉及到的一些字符存储格式记录 说明 #[cfg(test)] mod test { #[test] pub fn test_character_encode() { /* * char 类型占据 4 个字节,支持所有的 Unicode 字符 * u8 类型占据 1 个字节,适用于所有的 AS...
使用火焰图分析程序性能瓶颈 介绍 ClickHouse 共有三种火焰图 CPU:显示代码中函数的 cpu 耗时,函数宽度与 cpu time 成正比。主要用于分析进程中的 cpu 瓶颈 Memory:显示代码中函数中申请内存的大小,函数宽度与 memory allocation 成正比。主要用于优化进程的内存占用。 Real:显示代码中函数的 duration 耗时,函...
rust 项目编译时关于 toolchain 切换问题的记录 背景 无意执行了更新工具链的命令,导致原有项目编译报错,报错的原因可能是新版本工具链在一些语法上要求更为严格,比如名称相似的 type 会报错 error[E0432]: unresolved import `zstd_sys::ZSTD_cParameter::ZSTD_c_experimentalParam6` ...