zoukankan      html  css  js  c++  java
  • Hubble.net 持久化方面3个重大改进

    Hubble.net 持久化方面3个重大改进

     Author:Eaglet

    1.持久的DocId

      Hubble.net 采用的持久的 DocId,即DocId 永远不会改变,而 lucene.net 的 DocId 是动态的。这导致Lucene无法用DocId 做主键和别的数据进行整合 所以Lucene 的全文内容和全文索引必须要建在一起,不能单独只建索引,而通过DocId从其他的存储组件(如数据库中)获取全文内容。系统整合能力不够灵活。

    2. 元数据快速修改

       元数据(如一些价格,时间的数据)和全文在同一记录中,在构建垂直搜索中,全文往往很少改动,但元数据则可能经常变动。Lucene.net 如果要修改元数据,必须将整条记录删除,然后重新再添加,这样需要将大量的全文重新分词并存储,效率低下。 而Hubble.net 将元数据单独进行存储,修改元数据不需要删除记录重新添加,而是只修改对应记录的元数据就可以了。不影响全文索引。

    3. 高效的增量索引

      Lucene每增量一次就会生成至少一个Segment,增量完后,为保证查询效率,需要优化,这导致哪怕很小的增量,都要优化一次。如果数据量很大,极端情况下,只增加一条记录,就要重新对上百万的记录重新整理一次,极其耗时。Hubble.net 进行了改进,优化时尽量避免整理大的索引文件,大大提高了增量索引时优化的效率。






     

  • 相关阅读:
    Intellij Idea 2017创建web项目及tomcat部署实战
    使用docker安装mysql服务
    python2--升级python3
    SpringCloud--注册中心Eureka
    SpringBoot--属性加载顺序
    Jmeter--压测dubbo接口
    较快的maven的settings.xml文件
    Spring boot:logback文件配置
    Spring--AOP
    34组代码敲不队记账类app会议纪要
  • 原文地址:https://www.cnblogs.com/eaglet/p/1445253.html
Copyright © 2011-2022 走看看