一种分布式全文检索的索引实时更新的方法和系统.pdf

上传人:xia****o6 文档编号:1035246 上传时间:2018-03-27 格式:PDF 页数:18 大小:1.12MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910168335.3

申请日:

2009.08.27

公开号:

CN101650741A

公开日:

2010.02.17

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20090827|||公开

IPC分类号:

G06F17/30; H04L29/06

主分类号:

G06F17/30

申请人:

中国电信股份有限公司

发明人:

杨翊平; 徐 雄; 蔡坚铮; 李 云; 梁 冰; 余锦婷

地址:

100032北京市西城区金融大街31号

优先权:

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

宋海宁

PDF下载: PDF下载
内容摘要

本发明提出分布式全文检索的索引实时更新的方法和系统。当有索引信息更新时,由信息发布服务器向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据;由通知服务器将更新请求分配到对应的消息主题队列中,并将更新请求发送到订阅相应消息主题的请求分发器;根据记载有索引分类与索引服务器之间关系的路由信息表,由请求分发器向与索引分类对应的索引服务器发送更新请求;索引服务器接收请求分发器发送的索引更新请求,读取索引更新信息和操作类型;对读取到的索引更新信息按照索引结构进行字段规范化,根据操作类型对规范

权利要求书

1: 分布式全文检索的索引实时更新的方法,包括以下步骤: 当有索引信息更新时,由信息发布服务器向通知服务器发送更新请 求,在更新请求中包括索引分类信息的数据; 由通知服务器将更新请求分配到对应的消息主题队列中,并将更新 请求发送到订阅相应消息主题的请求分发器;每一个消息主题包含多类 索引分类,负责维护所包含的索引分类对应的索引更新请求; 根据记载有索引分类与索引服务器之间关系的路由信息表,由请求 分发器向与索引分类对应的索引服务器发送更新请求; 索引服务器接收请求分发器发送的索引更新请求,或主动向信息发 布服务器发起数据访问请求,读取索引更新信息和操作类型; 对读取到的索引更新信息按照索引结构进行字段规范化,根据操作 类型对规范化后的索引更新信息进行增量操作。
2: 根据权利要求1所述实时更新的方法,其中,索引分类包括至 少如下之一:地域、数据所属专业领域、索引日期、信息id范围。
3: 根据权利要求1所述实时更新的方法,其中,建立记载有索引 分类与索引服务器之间关系的路由信息表的操作,包括以下步骤: 每个索引服务器均在请求分发器上注册,在注册请求中包括该索引 服务器的索引分类; 根据索引分类与索引服务器之间的对应关系建立路由信息表。
4: 根据权利要求1所述实时更新的方法,其中,根据操作类型对 规范化后的索引更新信息进行增量操作,包括如下之一: 当新增索引更新信息时,直接加入内存索引; 当删除索引更新信息时,判断要删除的索引更新信息位于内存索引 还是文件索引,再直接进行删除; 当修改索引更新信息时,判断索引更新信息位于内存索引还是文件 索引,如果位于内存索引,删除原有记录,再将修改后的索引更新信息 新增到内存索引;如果位于文件索引,在内存索引中新增索引更新信 息,再从文件索引中删除该索引更新信息。
5: 根据权利要求4所述实时更新的方法,其中,当内存索引到达 设定条件时,将内存索引合并到文件索引。
6: 根据权利要求4或5所述实时更新的方法,其中,还包括在内 存索引故障时执行的容错控制,包括以下步骤: 由容错模块将需要恢复的时间段信息、信息发布服务器信息发送到 索引服务器,并通知其启动索引恢复过程进行内存索引恢复。
7: 分布式全文检索的索引实时更新的系统,包括: 信息发布服务器,当有索引信息更新时,向通知服务器发送更新请 求,在更新请求中包括索引分类信息的数据; 通知服务器,维护消息主题队列,在每一个消息主题队列中包含多 类索引分类的索引更新请求消息,当更新请求消息到达消息主题队列 时,将更新请求消息发送到订阅该主题的请求分发器; 请求分发器,根据记载有索引分类与索引服务器之间关系的路由信 息表,向与索引分类对应的索引服务器发送更新请求; 索引服务器包括: 数据预处理模块,接收请求分发器的索引更新消息,或主动向 信息发布服务器发起数据访问获得索引更新消息,解析索引更新信息和 操作类型,对读取到的索引更新信息按照索引结构进行字段规范化,并 发送给索引模块; 索引模块,根据操作类型对数据预处理模块处理后的索引更新 信息进行增量操作。
8: 根据权利要求7所述实时更新的系统,其中,索引分类包括至 少如下之一:地域、数据所属专业领域、索引日期、信息id范围。
9: 根据权利要求7所述实时更新的系统,其中,请求分发器接收 索引服务器发送的注册请求,在注册请求中包括该索引服务器的索引分 类,根据索引分类与索引服务器的对应关系建立路由信息表。
10: 根据权利要求7所述实时更新的系统,其中,索引服务器执行 的增量操作包括如下之一: 当新增索引更新信息时,直接加入内存索引; 当删除索引更新信息时,判断要删除的索引更新信息位于内存索引 还是文件索引,再直接进行删除; 当修改索引更新信息时,判断索引更新信息位于内存索引还是文件 索引,如果位于内存索引,删除原有记录,再将修改后的索引更新信息 新增到内存索引;如果位于文件索引,在内存索引中新增索引更新信 息,再从文件索引中删除该索引更新信息。
11: 根据权利要求10所述实时更新的系统,其中,索引服务器在 内存索引到达设定条件时,将内存索引合并到文件索引。
12: 根据权利要求7所述实时更新的系统,还包括: 容错模块,在内存索引发生故障时,将索引恢复请求发送到索引服 务器的数据源主动访问模块,索引恢复请求包括需要恢复的时间段信 息、信息发布服务器信息; 数据源主动访问模块,接收容错模块的索引恢复请求,向信息发布 服务器发起数据访问请求,读取需要恢复的时间段内的索引更新信息和 操作类型,并发送给数据预处理模块。

说明书


一种分布式全文检索的索引实时更新的方法和系统

    【技术领域】

    本发明属于搜索引擎信息索引技术领域,尤其涉及一种分布式全文检索的索引实时更新的方法和系统。

    背景技术

    搜索引擎已成为人们查询和获取信息的重要手段。越来越多的网站开始使用基于搜索引擎的搜索来取代传统的数据库搜索。与传统的数据库查询方式不同,信息需要先建成索引方能通过搜索引擎检索得到。搜索引擎具有搜索速度快、搜索准确率高、支持多语言分词等优势。

    但是,信息的实时更新是搜索引擎的难点。针对这个问题,业界已经研究了几种比较可行的解决方案:

    第一,搜索引擎主动轮询数据库的方式

    搜索引擎在后台启动一个轮询进程或线程,定时的扫描数据库数据,发现有更新数据时则读取更新的数据,再经过数据处理流程,将数据写入索引。这种方案实现简单,但具有以下缺点:

    (1)数据库需要设置额外字段标志每一条记录的状态和操作时间,搜索引擎根据标志和操作时间读取需要更新的记录,对索引进行批量的增量更新。

    (2)被删除记录需要在数据库中保存一段时间才能进行物理删除,增加了对存储空间的要求。

    (3)部署数据库和搜索引擎的服务器需要进行时间同步,保证其时间的一致性。

    (4)定时轮询对数据库系统形成一定压力。

    第二,搜索引擎提供一个增量更新的服务接口的方式

    该方案要求搜索引擎以服务的方式提供一个更新索引的接口,由数据更新系统主动对搜索引擎发起一个更新请求。服务接口一般采用同步通信方式,因此,一旦更新请求量比较大,系统性能将明显下降,无法支持大批量请求的实时更新。

    【发明内容】

    本发明提出一种实时更新索引信息的方法,并以该方法为基础,构建一个具有实时索引的分布式索引信息更新系统,使得对索引信息的更新操作能够实时的反映到索引中,可以被前端用户检索到更新后的索引信息。

    根据本发明的一个方面,提出分布式全文检索的索引实时更新的方法,包括以下步骤:当有索引信息更新时,由信息发布服务器向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据;由通知服务器将更新请求分配到对应的消息主题队列中,并将更新请求发送到订阅相应消息主题的请求分发器;每一个消息主题包含多类索引分类,负责维护所包含的索引分类对应的索引更新请求;根据记载有索引分类与索引服务器之间关系的路由信息表,由请求分发器向与索引分类对应的索引服务器发送更新请求;索引服务器接收请求分发器发送的索引更新请求,或主动向信息发布服务器发起数据访问请求,读取索引更新信息和操作类型;对读取到的索引更新信息按照索引结构进行字段规范化,根据操作类型对规范化后的索引更新信息进行增量操作。

    进一步,索引分类包括至少如下之一:地域、数据所属专业领域、索引日期、信息id范围。

    进一步,建立记载有索引分类与索引服务器之间关系的路由信息表的操作,包括以下步骤:每个索引服务器均在请求分发器上注册,在注册请求中包括该索引服务器的索引分类;根据索引分类与索引服务器之间的对应关系建立路由信息表。

    进一步,根据操作类型对规范化后的索引更新信息进行增量操作,包括如下之一:当新增索引更新信息时,直接加入内存索引;当删除索引更新信息时,判断要删除的索引更新信息位于内存索引还是文件索引,再直接进行删除;当修改索引更新信息时,判断索引更新信息位于内存索引还是文件索引,如果位于内存索引,删除原有记录,再将修改后的索引更新信息新增到内存索引;如果位于文件索引,在内存索引中新增索引更新信息,再从文件索引中删除该索引更新信息。

    进一步,当内存索引到达设定条件时,将内存索引合并到文件索引。

    进一步,还包括在内存索引故障时执行的容错控制,包括以下步骤:由容错模块将需要恢复的时间段信息、信息发布服务器信息发送到索引服务器,并通知其启动索引恢复过程进行内存索引恢复。

    根据本发明的另一方面,还提出分布式全文检索的索引实时更新的系统,包括:信息发布服务器,当有索引信息更新时,向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据;通知服务器,维护消息主题队列,在每一个消息主题队列中包含多类索引分类的索引更新请求消息,当更新请求消息到达消息主题队列时,将更新请求消息发送到订阅该主题的请求分发器;请求分发器,根据记载有索引分类与索引服务器之间关系的路由信息表,向与索引分类对应的索引服务器发送更新请求;索引服务器包括:数据预处理模块,接收请求分发器地索引更新消息,或主动向信息发布服务器发起数据访问获得索引更新消息,解析索引更新信息和操作类型,对读取到的索引更新信息按照索引结构进行字段规范化,并发送给索引模块;索引模块,根据操作类型对数据预处理模块处理后的索引更新信息进行增量操作。

    进一步,索引分类包括至少如下之一:地域、数据所属专业领域、索引日期、信息id范围。

    进一步,请求分发器接收索引服务器发送的注册请求,在注册请求中包括该索引服务器的索引分类,根据索引分类与索引服务器的对应关系建立路由信息表。

    进一步,索引服务器执行的增量操作包括如下之一:当新增索引更新信息时,直接加入内存索引;当删除索引更新信息时,判断要删除的索引更新信息位于内存索引还是文件索引,再直接进行删除;当修改索引更新信息时,判断索引更新信息位于内存索引还是文件索引,如果位于内存索引,删除原有记录,再将修改后的索引更新信息新增到内存索引;如果位于文件索引,在内存索引中新增索引更新信息,再从文件索引中删除该索引更新信息。

    进一步,索引服务器在内存索引到达设定条件时,将内存索引合并到文件索引。

    进一步,还包括容错模块,在内存索引发生故障时,将索引恢复请求发送到索引服务器的数据源主动访问模块,索引恢复请求包括需要恢复的时间段信息、信息发布服务器信息;数据源主动访问模块,接收容错模块的索引恢复请求,向信息发布服务器发起数据访问请求,读取需要恢复的时间段内的索引更新信息和操作类型,并发送给数据预处理模块。

    与现有技术相比,本发明至少具有如下之一的优点和效果:

    采用通知的方式获取索引更新信息,实现真正意义上的实时索引更新,显著提高前端用户体验。

    分布式的索引存储,支持海量数据索引和高效的索引处理。

    多重备份结合主动轮询的容错机制,保证系统稳定。

    【附图说明】

    图1为本发明分布式全文检索的索引实时更新的方法流程图。

    图2为本发明分布式全文检索的索引实时更新的系统结构图。

    图3为本发明系统中索引服务器的结构图。

    【具体实施方式】

    本发明采用分布式的索引结构,通知和轮询相结合的数据获取方式,将对索引的更新操作实时反映到工作索引上,保证前端可以实时检索到最新的信息。

    下面将结合附图和实施例详细说明本发明。

    图1为本发明分布式全文检索的索引实时更新的方法流程图。该方法具体包括以下步骤:

    在步骤101,当有索引信息更新时,由信息发布服务器向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据。

    发送更新请求的操作可以是异步消息机制,在信息发布服务器和请求分发器之间建立一个消息通道,由通知服务器维护。信息发布触发事件通知请求分发器获取更新信息。例如,在信息发布服务器和请求分发器之间建立一个JMS消息通道,信息发布服务器将信息更新作为一个订阅主题(Topic),请求分发器作为一个消息订阅者(Subscriber),信息发布服务器将更新操作发布到Topic上,通过JMS消息通知请求分发器读取更新信息。

    在步骤102,由通知服务器维护一系列消息主题队列,每一个消息主题队列可包含多类索引分类的索引更新请求消息,当更新请求消息到达消息主题队列时,将更新请求消息发送到订阅该主题的请求分发器。

    索引分类可以是如下之一:地域、数据所属专业领域、索引日期、信息id范围等。

    在步骤103,根据记载有索引分类与索引服务器之间关系的路由信息表,由请求分发器向与索引分类对应的索引服务器发送更新请求。

    请求分发器可以是分布式部署的,可根据其负责的索引分类,订阅通知服务器上对应的消息。请求分发器设置、安装索引分类,将更新请求分类,再分发到对应分类的索引服务器上。请求分发器与索引服务器之间维持路由信息表。每个索引服务器均在请求分发器上注册,在注册请求中包括该索引服务器的索引分类,由请求分发器根据索引分类与索引服务器的对应关系生成路由信息表,保证索引更新请求正确的传递到对应的索引服务器。

    路由信息表可设置在请求分发器中,也可配置独立的路由分发器。当路由信息表设置在独立的路由分发器中,请求分发器在接收到更新请求时,到该路由分发器中获取该路由信息表。路由信息可根据索引分类生成。例如,可以根据信息id范围结合地域编码划分索引的分布,则路由信息可由信息id范围和地域编码构成,请求分发器根据记录的id和地域编码,查路由信息表取得路由,再访问对应的索引服务器。路由信息表支持动态调整,保证在不停止原有索引服务的前提下扩展索引服务。

    在步骤104,索引服务器接收请求分发器发送的索引更新请求,解析并读取索引更新信息和操作类型。

    索引服务器可以是分布式部署的,从而索引也是分布式存放的。索引服务器可以接收请求分发器发送的索引更新请求,也可以主动到信息发布服务器获取更新信息。例如,信息发布服务器可开放数据源访问权限,由索引服务器定时对数据库进行轮询访问,读取数据的更新信息。数据源可以是数据库,也可以是如web接口等其他形式提供的数据接口。

    在步骤105,对读取到的索引更新信息按照索引结构进行字段规范化,根据操作类型对规范化后的索引更新信息进行增量操作。

    每一个索引服务器上保存的索引信息包括内存索引和文件索引。索引采用倒排的数据结构。内存索引保存最新更新的记录,文件索引保存原有信息以及合并的内存索引的索引信息。对于索引更新信息,如果是新增记录,直接加入内存索引。如果是删除,则判断记录位于内存索引还是文件索引,再直接进行删除。如果是修改,则判断记录位于内存索引还是文件索引,若位于内存索引,则删除原有记录,再将修改后的记录新增到内存索引;若位于文件索引,则在内存索引中新增记录,再从文件索引中删除该记录。

    内存索引在一定条件下将合并到文件索引。合并之后,内存索引清空。合并的条件可以是如下之一:索引占用的内存空间。当内存索引占用内存空间到达系统设定大小,将内存索引合并到文件索引;索引包含的记录数。当内存索引包含的记录数到达系统设定最大值,将内存索引合并到文件索引;时间点。当服务器时间到达系统指定的一个时间点,将内存索引合并到文件索引;系统资源空闲程度。当索引服务器的资源使用率,例如CPU使用率、内存占用率、IO读写量等,低于系统指定值,将内存索引合并到文件索引中。

    本发明采用通知的方式获取索引更新信息,实现真正意义上的分布式实时索引更新,显著提高前端用户体验。在获取索引更新信息后,分布式的存储索引更新信息,支持海量数据索引和高效的索引处理。

    此外,本发明还可以进一步包括对多重索引信息进行容错备份操作,通过容错模块实时监控内存索引状态,在内存索引出错时,切换到备份的索引信息,保证了系统的稳定性。还进一步通过主动访问数据源的方式进行内存索引的容错控制。

    采用多节点备份容错方式,根据索引重要程度或检索频繁程度等,进行一对一或者多对一的索引备份。负责备份工作的服务器可单独为某一索引服务器备份即一对一备份,也可以为多个索引服务器备份即多对一备份,同一个索引服务器也可以配备两台或多台服务器进行热备份。视具体工作的索引服务器的负载而定。一旦工作服务器出现故障,请求分发器将请求发到备份服务器上,保证请求的正常处理。

    在每个索引服务器上对索引信息进行容错备份,将正确的在线索引备份为线下索引,一旦在线索引损坏,将切换为线下索引。例如,可在每一台索引服务器存放完全相同的两份索引,分为线上索引online和线下索引offline。一般情况下,索引服务访问online,一旦索引服务发现online无法访问或出错,则主动切换到offline,将offline指定为online,保证检索服务稳定。

    采用轮询方式实现内存索引的容错操作。容错模块记录初始化内存索引的时间点,检测内存索引的可用性,一旦发现内存索引有误,将online指定为offline。将需要恢复的时间段信息、信息发布服务器信息发送到索引服务器,并通知其启动索引恢复过程进行索引恢复。例如,每次合并内存索引之后,容错模块记下时间点,在发现内存索引故障时,将合并内存索引的时间点、故障时间点以及信息发布服务器的信息发给索引服务器,由索引服务器读取上一个时间点到故障点的更新数据,对内存索引进行恢复。上一个时间点是指上一次内存索引与文件索引合并操作成功完成的时间点。

    图2为本发明分布式全文检索的索引实时更新的系统结构图。包括信息发布服务器、通知服务器、请求分发服务器、索引服务器。

    信息发布服务器,当有索引信息更新时,向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据。

    发送更新请求的操作可以是异步消息机制,在信息发布服务器和请求分发器之间建立一个消息通道,由信息发布触发事件通知请求分发器获取更新信息。例如,在信息发布服务器和请求分发器之间建立一个JMS消息通道,信息发布服务器将信息更新作为一个订阅主题(Topic),请求分发器作为一个消息订阅者(Subscriber),信息发布服务器将更新操作发布到Topic上,通过JMS消息通知请求分发器读取更新信息。

    通知服务器,维护一系列消息主题队列,每一个消息主题队列可包含若干类索引分类的索引更新请求消息,当更新请求消息到达消息主题队列时,将更新请求消息发送到订阅该主题的请求分发器。索引分类可以是如下之一:地域、数据所属专业领域、索引日期、信息id范围等。

    请求分发器,根据记载有索引分类与索引服务器之间关系的路由信息表,向与索引分类对应的索引服务器发送更新请求。

    请求分发器可以是分布式部署的,可根据其负责的索引分类,订阅通知服务器上对应的消息。请求分发器设置、安装索引分类,将更新请求分类,再分发到对应分类的索引服务器上。请求分发器与索引服务器之间维持路由信息表。每个索引服务器均在请求分发器上注册,在注册请求中包括该索引服务器的索引分类,由请求分发器根据索引分类与索引服务器的对应关系生成路由信息表,保证索引更新请求正确的传递到对应的索引服务器。

    路由信息表可设置在请求分发器中,也可配置独立的路由分发器。当路由信息表设置在独立的路由分发器中,请求分发器在接收到更新请求时,到该路由分发器中获取该路由信息表。路由信息表可根据索引分类生成。例如,可以根据信息id范围结合地域编码划分索引的分布,则路由信息可由信息id范围和地域编码构成,请求分发器根据记录的id和地域编码,查路由信息表取得路由,再访问对应的索引服务器。路由信息表支持动态调整,保证在不停止原有索引服务的前提下扩展索引服务。

    索引服务器,可以接收请求分发器的索引更新消息,也可以主动向信息发布服务器发起数据访问获得索引更新消息,解析索引更新信息和操作类型,对读取到的索引更新信息按照索引结构进行字段规范化,根据操作类型对规范化后的索引更新信息进行增量操作。

    索引服务器可以是分布式部署的,从而索引也是分布式存放的。索引服务器主动到信息发布服务器获取更新信息。例如,信息发布服务器可开放数据源访问权限,由索引服务器定时对数据库进行轮询访问,读取数据的更新信息。数据源可以是数据库,也可以是如web接口等其他形式提供的数据接口。

    每一个索引服务器上的索引信息包括内存索引和文件索引。索引采用倒排的数据结构。内存索引保存最新更新的记录,文件索引保存原有信息以及合并的内存索引的索引信息。对于索引更新信息,如果是新增记录,直接加入内存索引。如果是删除,则判断记录位于内存索引还是文件索引,再直接进行删除。如果是修改,则判断记录位于内存索引还是文件索引,若位于内存索引,则删除原有记录,再将修改后的记录新增到内存索引;若位于文件索引,则在内存索引中新增记录,再从文件索引中删除该记录。

    内存索引在一定条件下将合并到文件索引。合并之后,内存索引清空。合并的条件可以是如下之一:索引占用内存空间。当内存索引占用内存空间到达系统设定大小,将内存索引合并到文件索引;索引包含记录数。当内存索引包含的记录数到达系统设定最大值,将内存索引合并到文件索引;时间点。当服务器时间到达系统指定的一个时间点,将内存索引合并到文件索引;系统资源空闲程度。当索引服务器的资源使用率,例如CPU使用率、内存占用率、IO读写量等,低于系统指定值,将内存索引合并到文件索引中。

    本发明采用通知的方式获取索引更新信息,实现真正意义上的实时索引更新,显著提高前端用户体验。在获取索引更新信息后,分布式的存储索引更新信息,支持海量数据索引和高效的索引处理。

    此外,本发明还可以进一步包括容错模块,用于对多重索引信息进行容错备份。通过容错模块实时监控内存索引状态,在内存索引出错时,切换到备份的索引信息,保证了系统的稳定性。还进一步通过主动访问数据源的方式进行内存索引的容错控制。

    容错模块可以采用多节点备份容错方式,根据索引重要程度或检索频繁程度等,进行一对一或者多对一的索引备份。负责备份工作的服务器可单独为某一索引服务器备份即一对一备份,也可以为多个索引服务器备份即多对一备份,同一个索引服务器也可以配备两台或多台服务器进行热备份。视具体工作的索引服务器的负载而定。一旦工作服务器出现故障,请求分发器将请求发到备份服务器上,保证请求的正常处理。

    容错模块可以设置在索引服务器上,在每个索引服务器上对索引信息进行容错备份,将正确的在线索引备份为线下索引,一旦在线索引损坏,将切换为线下索引。例如,可在每一台索引服务器存放完全相同的两份索引,分为线上索引online和线下索引offline。一般情况下,索引服务访问online,一旦索引服务发现online无法访问或出错,则主动切换到offline,将offline指定为online,保证检索服务稳定。

    采用轮询方式实现内存索引的容错操作。容错模块记录初始化内存索引的时间点,检测内存索引的可用性,一旦发现内存索引有误,将online指定为offline。将需要恢复的时间段信息、信息发布服务器信息发送到索引服务器,并通知其启动索引恢复过程进行索引恢复。例如,每次合并内存索引之后,容错模块记下时间点,在发现内存索引故障时,将合并内存索引的时间点、故障时间点以及信息发布服务器的信息发给索引服务器,由索引服务器读取上一个时间点到故障点的更新数据,对内存索引进行恢复。上一个时间点是指上一次内存索引与文件索引合并操作成功完成的时间点。

    图3为本发明系统中索引服务器的结构图。包括数据源主动访问模块、数据预处理模块、索引模块。

    数据源主动访问模块,用于在内存索引发生故障时,配合容错模块执行容错控制,接收容错模块的索引恢复请求,获取恢复时间段信息,向信息发布服务器发起数据访问请求,并读取索引更新信息和操作类型,发送到数据预处理模块进行后续处理。

    数据预处理模块,接收请求分发器的索引更新消息,也可以主动向信息发布服务器发起数据访问获得索引更新消息,解析索引更新信息和操作类型,对读取到的索引更新信息按照索引结构进行字段规范化,并发送给索引模块。

    索引模块,根据操作类型对数据预处理模块处理后的索引更新信息进行增量操作。其中,索引分为内存索引和文件索引。

    对于索引更新信息,如果是新增记录,直接加入内存索引。如果是删除,则判断记录位于内存索引还是文件索引,再直接进行删除。如果是修改,则判断记录位于内存索引还是文件索引,若位于内存索引,则删除原有记录,再将修改后的记录新增到内存索引;若位于文件索引,则在内存索引中新增记录,再从文件索引中删除该记录。

    本发明的内存索引在一定条件下,还将内存索引的信息合并到文件索引。合并之后,内存索引清空。因此,文件索引保存原有索引信息以及合并的内存索引的索引信息。

    合并的条件可以是如下之一:索引占用内存空间。当内存索引占用内存空间到达系统设定大小,将内存索引合并到文件索引;索引包含记录数。当内存索引包含的记录数到达系统设定最大值,将内存索引合并到文件索引;时间点。当服务器时间到达系统指定的一个时间点,将内存索引合并到文件索引;系统资源空闲程度。当索引服务器的资源使用率,例如CPU使用率、内存占用率、IO读写量等,低于系统指定值,将内存索引合并到文件索引中。

    下面将结合实施例对本发明进行说明。

    信息门户作为信息发布服务器,用户发布信息经过门户处理进入门户的信息发布数据库。

    采用JMS消息服务实现通知机制。在信息门户与请求分发器之间架设一个JMS消息服务器作为通知服务器。JMS服务器上设置一个消息主题Topic,在信息门户上发布的信息,将转变成索引更新请求发布到Topic上。

    实现一个请求分发器Dispatcher,并作为Topic的订阅者,登记到JMS消息服务器上。

    根据索引分类配备多个索引服务器IndexServer,每个IndexServer均在Dispatcher上注册,由Dispatcher根据索引分类生成路由信息表,保证索引更新请求正确的传递到对应的IndexServer。

    每台IndexServer均部署数据预处理模块DataProcessor和索引模块Indexer。

    DataProcessor将Dispatcher发过来的数据处理成符合索引分类的数据记录。

    Indexer根据更新类型(增、删、改),将记录更新到索引信息中。如果是新增,直接在内存索引新增;如果是删除,判断在内存索引还是文件索引再删除;如果是修改,且记录位于内存索引,则直接修改索引记录,如果位于文件索引,则在内存索引新增记录,并将文件索引中的记录删除。

    Indexer在符合索引合并条件的情况下,将内存索引合并到文件索引中,并清空内存索引。采用时间点的合并条件,也可以按内存索引占用空间、内存记录数、服务器空闲程度等作为合并条件。

    本领域的技术人员应当可以根据本发明的实施方式和实施例作出相应的变形和修改,但是,所述变形和修改都应覆盖在本权利要求的保护范围之内。

一种分布式全文检索的索引实时更新的方法和系统.pdf_第1页
第1页 / 共18页
一种分布式全文检索的索引实时更新的方法和系统.pdf_第2页
第2页 / 共18页
一种分布式全文检索的索引实时更新的方法和系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种分布式全文检索的索引实时更新的方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种分布式全文检索的索引实时更新的方法和系统.pdf(18页珍藏版)》请在专利查询网上搜索。

本发明提出分布式全文检索的索引实时更新的方法和系统。当有索引信息更新时,由信息发布服务器向通知服务器发送更新请求,在更新请求中包括索引分类信息的数据;由通知服务器将更新请求分配到对应的消息主题队列中,并将更新请求发送到订阅相应消息主题的请求分发器;根据记载有索引分类与索引服务器之间关系的路由信息表,由请求分发器向与索引分类对应的索引服务器发送更新请求;索引服务器接收请求分发器发送的索引更新请求,读。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1