代码之家  ›  专栏  ›  技术社区  ›  Rachel

如何从Solr索引中删除逻辑删除的文档?

  •  3
  • Rachel  · 技术社区  · 16 年前

    由于规模,我需要确保索引的大小是适当的。

    我正在使用此代码更新文档:

    getSolrServer().deleteById(document.getIndexId());
    getSolrServer().add(document.getSolrInputDocument());
    getSolrServer().commit();
    

    但我注意到,当我查看Solr服务器的stats页面时,数据并不是我所期望的。

    在初始索引之后,numDocs和maxDocs都等于10。但是,当我更新文档时,numDocs仍然等于10(预期值),但是maxDocs等于11(意外值)。

    在阅读文档时,我看到

    maxDoc可能更大,因为maxDoc计数包括逻辑删除的文档,这些文档尚未从索引中删除。

    如果这些文档仍然存在于索引中,那么在使用大量文档运行时,是否存在性能损失的风险?

    谢谢:)

    1 回复  |  直到 13 年前
        1
  •  6
  •   Pascal Dimassimo    16 年前

    你必须这样 optimize your index .

    请注意,优化是扩展性的,您可能不应该每天都这样做。

    以下是有关优化的更多信息:

    http://www.lucidimagination.com/search/document/CDRG_ch06_6.3.1.3

    http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations

    推荐文章