hubbledotnet mysql_HubbleDotNet 开源全文搜索数据库项目--自动和现有表同步

作者: eaglet

转载需注明出处

对于大部分应用来说,全文搜索功能只是应用的部分功能而非全部功能,很多系统在设计之初往往缺乏全文搜索方面的设计,搜索功能多是用数据库的 like 语句来实现,随着系统容量的增大和用户数量的增加,这种 like 无论从性能还是功能方面都无法满足站内搜索的需要。HubbleDotNet 为这部分用户提供了松耦合度的系统集成方案,用户只需一小时不到时间就可以实现现有系统的全文搜索功能的后台部分,无需对现有数据库表结构做任何改动,无需编写大量代码。其中自动和现有表数据同步是这个解决方案中的重要一环。本文重点介绍如何设置,以完成全文索引和现有数据表的数据同步。

适用版本:HubbleDotNet 0.9.6.0

适用范围:本文适用于被动模式索引的两种模式 Append Only 和 Updatable

功能简介:

针对现有数据表进行索引,只能使用被动模式建立索引

在0.9 版本以前,被动模式索引(IndexOnly=true) 是无法实现自动同步的,由于HubbleDotNet 全文索引和数据库之间缺乏触发机制,数据库中数据表的增加,更改和删除无法被hubbledotnet 获知,用户必须手工方式和数据库同步,详见:通过程序和现有表或视图同步 。

0.9.6.0 版本以后,HubbleDotNet 提供了自动和数据库现有表同步的机制,用户只要调用 Hubble.SqlClient 中提供的一个类,就可以触发HubbleDotNet 和数据库进行同步,用户可以根据自己的实际情况确定何时触发同步,同步周期是多少。HubbleDotNet 暂时没有提供自动的同步任务,这是因为目前这方面需求还不是很明确,不同项目可能对同步的触发时间和同步周期有不同的要求,比如有的用户可能希望夜里才触发同步,有的用户可能希望每5分钟就同步一次等等。由于需求差异较大,HubbleDotNet 目前版本暂时确定把这个触发同步的主动权交给用户,当然这个触发同步操作是非常简单的,只需3行代码就可以完成。

下面重点谈谈如何设置自动同步

Append only 模式

Append only 模式下,自动同步设置非常简单,只需要在Table Info 中将 TableSynchronization 设置为ture。就可以了。

66c3b09f397fc14e05e5ca5213e8d1da.png

同步流程

如上图所示,用户在执行Hubble.SqlClient 提供的类TableSynchronization 的Synchronize方法后,会先判断目前是否正在同步,如果正在同步,将返回False,用户可以在等待本次同步完成后,再执行这个方法触发同步。触发同步成功后,HubbleDotNet 的Server 端将扫描数据库中未建立索引的新增记录,对这些记录进行索引,索引完成后,按照用户指定的优化方案对索引进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值