v0.1.1
- 基础目录结构
- http启动
v0.1.2
- 主题创建,查看
- 文档写入,查询
v0.1.3
- 对文档进行倒排
v0.1.4
- 搜索初步功能,查询,聚合
v0.1.5
- 增加索引信息文件
- 索引存储分片 --> 分治的思想已经进行了排序和分页
v0.1.6
- 写入大量文档测试 写5w数据测试
- 优化代码
测试结果:
写入: 49234 个文档,对标题,作者进行倒排索引
倒排索引空间:13M 66554个索引文件
查询 只查id
10次平均值 : 0.9ms
100次平均值 : 1.6ms
翻页10次平均值 : 0.3ms
查询 查所有数据
10次平均值 : 7.6ms
100次平均值 : 14.2ms
翻页10次平均值 : 4.7ms
v0.1.7
- 过滤 助词,语气词,形容词
- 存储文档的doc 对docId进行哈希分片存储
- theme 主题信息增加总文档数 计数
- 对文档做一个 sumMd5 并记录,解决重复提交
v0.1.8
- docId 对应 term 做一个存储
- 增加doc缓存
- 优化 搜索
- 增加 搜索词缓存
[TODO] v0.1.9
- 写入大量文档测试 写50w数据测试
- 优化代码
- 压力测试
测试结果:
写入:
倒排索引空间:
查询 只查id
10次平均值 :
100次平均值 :
翻页10次平均值 :
查询 查所有数据
10次平均值 : 7.6ms
100次平均值 : 14.2ms
翻页10次平均值 : 4.7ms
压力:
10000次请求 100 并发
平均用时: 83.0771102262ms
最高用时: 601.546476ms
最低用时: 1.34796ms
10000次请求 1000 并发
100000次请求 10000 并发
[TODO List]
- term 前缀树 --> 搜索词匹配
- term 过滤
- term 库,存储用term id标识
- 对搜索词进行 term前缀树过滤 和 匹配 --> 避免浪费时间查询无索引的词
- 删除
- 添加自定义索引
- 更新(先删后插) value更新,文档内容更新
- 接口规范
- 统计总量
- 倒序查询
- 研究分布式存储 (p2p方向)
- 管理界面(web) 设计
- 鉴权
- 搜索词统计,搜索统计 --> 热词功能
- 限流
- 集群
[局限]
- 只支持文本搜索
- 写慢,读快
- 舍弃空间获取时间
- 只支持最近匹配词的匹配位置高亮,无法全文高亮(更多高亮就需要更多存储,更多时间,弃用这个功能,使查询更快,节约物理资源)
[未来]
- 图片搜索
- 联想搜索