• 搜索引擎项目


    正排索引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 —[
    // 首先去掉