ParadeDB Search Performance Improvements
2 hours ago
- PlanetScale发布了TIN,一个基于BM25搜索和文档计数的Postgres文本搜索扩展,声称具有显著的性能优势。
- ParadeDB初期运行较慢,但通过有针对性的优化迅速缩小了差距,且无需更改文档标识符。
- 优化1:将每个词条的字段规范数组与倒排列表一起存储,将随机页面访问次数从约1500次减少到30次。
- 优化2:对包含多个词项的析取查询使用MAXSCORE代替WAND,延迟提升高达8倍。
- 基准测试异常:ParadeDB的语法导致跨多个字段的搜索,而TIN对密集词项的省略近似于BM25,导致准确性权衡。
- TIN使用Postgres的ctid作为文档标识符,消除了DocId到ctid的映射,但ParadeDB认为密集的u32 DocId值能提供更好的压缩和列式集成。
- ParadeDB已将优化嵌入Tantivy,致力于开源协作,并将在v0.26.0版本中发布改进。
- 第二部分将涵盖COUNT性能优化。