正排索引1W条倒排索引600W条
批量插入(batch insert)批量插入(batch insert)
for(…){ //循环600W次
insert into 表(…)values(…);
}
for(…){ //循环6000次
这种插入的性能更好
insert into表(…)values(…),(…),(…),(…(…(.);
一
一次插入1000条数据
1.修改表结构两张表解决问题∶
正排索引表(docid-pk、title、url、content)
整体数量级不大,只有1W条,但是每一条比较大(content 大)
批量插入的时候,每次记录不用太多(每次插入10条)倒排索引表(id-pk、word、docid、weight)
整体数量级较大,有600W条,每一条的记录比较小
批量插入的是时候,每次记录多插入一些(每次插入1W条)2.docid的生成方式做修改
ArrayList的尾插过程中的size()作为docid(我们手动控制自增id)改成
利用mysql的表中的自增机制,作为docid 3.把保存索引数据的过程改成批量插入
4.整体过程不会变,但可能把一些不是很合理(比较冗余,或者代码位置不合适的类)进行调整
main】 c.p.searcher.indexer.command.Indexer ∶扫描目录结束,一共得到10460个文件。main】 c.p.searcher.indexer.command.Indexer ∶构建文档完毕,一共10460篇文档
2022-08-05 09:30:29.243 DEBUG 23272 —[2022-08-05 09:31:36.233 DEBUG 23272 —[
// 首先去掉