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 进行了改进,优化时尽量避免整理大的索引文件,大大提高了增量索引时优化的效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值