CN103258036A - 一种基于p2p的分布式实时搜索引擎 - Google Patents
一种基于p2p的分布式实时搜索引擎 Download PDFInfo
- Publication number
- CN103258036A CN103258036A CN2013101793078A CN201310179307A CN103258036A CN 103258036 A CN103258036 A CN 103258036A CN 2013101793078 A CN2013101793078 A CN 2013101793078A CN 201310179307 A CN201310179307 A CN 201310179307A CN 103258036 A CN103258036 A CN 103258036A
- Authority
- CN
- China
- Prior art keywords
- index
- node
- cluster
- burst
- search engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于p2p的分布式实时搜索引擎,其集群中包含若干节点,每个节点包含有一个以上的索引,各索引又被分为一个以上的索引分片,所述索引分片仅包含主分片或同时包含主分片和一个以上的副本;各节点相互独立,通过对等网络连接,通过广播和多播的方式进行通讯,各独立的节点内均存储有反映整个集群中所有节点的索引信息的集群索引元数据表,在索引更新和搜索时,节点读取集群索引元数据表并根据请求的属性,将请求发送至对应节点进行索引或查询,通过此种方式省去了主节点,缩短了检索路径,提高了检索的速度,具有高度容错性,即使一个节点故障,其他节点仍可正常工作,对系统不会造成任何负担。
Description
技术领域
本发明涉及搜索引擎,特别是一种基于p2p的分布式实时搜索引擎。
背景技术
互联网中的信息呈爆炸式增长,网络上的信息也在高速的实时更新,因此,如何精确、快速、及时获取到信息,成为了搜索引擎需要解决的首要问题。
现有的分布式搜索方式主要为集中式,其为主从结构,由集中的一台服务器作为主节点来管理所有子节点,通过主节点来分发请求到其他子节点来实现分布式搜索,由主节点统一提供检索服务,此集中式的搜索引擎存在以下缺点:(1)数据的实时性不能保证,由于数据更新时是先更新到主节点,主节点再更新到子节点,因此数据在从主节点更新至子节点时会有时间间隔,如果客户端正好在主节点更新了数据时就立即查询,同时查询的是子节点,而此时该子节点还没有同步到数据,那么刚才更新的那条数据就不能被查询出来,使得用户端无法立即得到最新数据;(2)由于整个系统在索引和搜索时都经过主节点,因此一旦主节点出现故障,即整个集群都处于不可搜索的状态,使得整个系统崩溃,同时在网络繁忙时,大量的客户端频繁的访问,造成主节点压力过大,极易因过渡饱和而发生故障,即使不会发生故障,主节点也会因为压力过大,运行速度降低。
发明内容
本发明的目的在于克服上述缺陷,提供一种可高速运行、容错性强、无需通过主节点进行索引和检索的基于p2p的分布式实时搜索引擎。
本发明所述的基于p2p的分布式实时搜索引擎,其集群中包含若干节点,每个节点包含有一个以上的索引,各索引又被分为一个以上的索引分片,所述索引分片仅包含主分片或同时包含主分片和一个以上的副本;各节点相互独立,通过对等网络连接,通过广播和多播的方式进行通讯,各独立的节点内均存储有反映整个集群中所有节点的索引信息的集群索引元数据表,在索引更新和搜索时,节点读取集群索引元数据表并根据请求的属性,将请求发送至对应节点进行索引或查询。
一种基于p2p的分布式实时搜索引擎的索引方法,包括如下步骤:
客户端发送索引请求至集群中的某一节点;该节点对客户端发送的数据索引进行解析,从中提取该数据索引的属性信息;
同时该节点通过读取集群索引元数据表,找到包含该属性信息的主分片的节点,并将索引请求发送至这些主分片进行索引;
若主分片索引成功,该节点再把索引请求发送至这些主分片的副本所在节点进行索引;若主分片索引失败,则返回失败信息到客户端。
一种基于p2p的分布式实时搜索引擎的搜索方法,包括如下步骤:
客户端发送搜索请求至集群中的某一节点;该节点对客户端发送的查询索引进行解析,并判断其所针对的目标索引;
然后该节点通过读取集群索引元数据表并比对目标索引的属性信息,查找包含该目标索引分片的节点;
查看分片查询条件,根据查询条件,该节点将搜索请求发送至包含该索引的主分片或者副本查询。
所述集群间的通信基于P2P,集群中的各个节点可相互通信。
所述索引步骤中,节点中的索引存储在内存和硬盘,主分片和副本所在节点在收到索引请求后,先将数据索引存储至内存;再将数据索引写入备忘日志文件,最后将其写入硬盘上的索引文件中。
所述集群中可设置某个节点用于维护整个集群状态,以及各个节点的存储和维护。
本发明所述的基于p2p的分布式实时搜索引擎,其集群中设有若干节点,基于P2P技术使得各个节点间相互通信,无需通过主节点索引和搜索,同时每个节点均有整个集群中所有节点的集群索引元数据表,在索引和搜索时节点通过读取集群索引元数据表即可根据请求找到对应的节点,通过此种方式省去了主节点,缩短了检索路径,提高了检索的速度,具有高度容错性,即使一个节点故障,其他节点仍可正常工作,对系统不会造成任何负担;索引分片包含主分片和至少一个副本,增强系统的容错性,同时加快检索速率;同时主分片和副本所在节点在收到索引请求后,先存储至内存,保证了正在更新中的数据能即可被检索到,提高了搜索引擎检索的实时性。
附图说明
图1为本发明的结构示意图。
图2为本发明所述索引步骤的流程图。
图3为本发明所述搜索步骤的流程图。
具体实施方式
下面结合附图,对本发明作进一步的说明:
如图1,一种基于p2p的分布式实时搜索引擎,其集群中包含若干节点,每个节点包含有一个以上的索引,各索引又被分为一个以上的索引分片,所述索引分片仅包含主分片或同时包含主分片和一个以上的副本;如图1所示的一个包含三个节点的集群,其包含节点1、节点2、节点3,且节点1、节点2、节点3均包含索引1、索引2两个索引,其中索引1被分为三个分片:分片1、分片2、分片3,同时索引1的每个分片的副本数均为1,索引2被分为三个分片:分片1’、分片2’、分片3’,同时索引2的每个分片的副本数均为1;节点1中的索引1包含分片1(副本)、分片3,节点2中的索引1包含分片2、分片3(副本),节点3中的索引1包含分片2(副本)、分片1;节点1中的索引2包含分片1’、分片2’(副本),节点2中的索引2包含分片2’、分片3’(副本),节点3中的索引2包含分片3’、分片1’(副本)。三个节点相互独立,通过对等网络连接,通过广播和多播的方式进行通讯,各独立的节点内均存储有反映整个集群中所有节点的索引信息的集群索引元数据表,集群索引元数据表包括索引的名称、索引的分片数、索引分片的副本数、索引分片以及索引分片副本所在节点的ID等信息;在索引更新和搜索时,节点读取集群索引元数据表并根据请求的属性,将请求发送至对应节点进行索引或查询。
索引操作时,如图1、图2,首先客户端发送索引请求至集群中的某一节点,例如图1中的节点2,节点2对客户端发送的数据索引进行解析,从中提取该数据索引的属性信息,假设通过解析后发现索引数据为分片1;同时节点2通过读取集群索引元数据表,找到节点3为包含分片1的节点,节点1为包含分片1(副本)的节点;然后节点2先与节点3进行通讯,将索引请求发送至节点3上的分片1进行索引;若分片1索引成功,节点2再与节点1通讯,把索引请求发送至包含分片1(副本)的节点1进行索引,此时,包含该索引请求的主分片和副本都得到更新;若节点2与分片1所在节点3进行通讯时,索引失败,则返回失败信息到客户端。
所述索引操作中,节点中的索引存储在内存和硬盘,主分片和副本所在节点在收到索引请求后,先将数据索引存储至内存;再将数据索引写入备忘日志文件,最后将其写入硬盘上的索引文件中,保证了正在更新中的数据能即可被检索到,提高了搜索引擎检索的实时性。
搜索操作时,如图1、图3,首先客户端发送搜索请求至集群中的某一节点,如图1中的节点2,该搜索请求包含所查询的索引名和分片查询优先级,节点2对客户端发送的查询索引进行解析,提取出索引名,判断其所针对的目标索引,假设索引为图中的分片1’;然后节点2通过读取集群索引元数据表,查找出包含该目标索引分片的节点为节点1中的分片1’和节点3中的分片1’(副本);然后查看该搜索请求的分片查询优先级,根据查询条件,节点2将搜索请求发送至包含该索引的主分片或者副本查询;作为优选,所述查询条件分为三种:1.主分片优先,即只在主分片中的数据进行查询,即节点2与节点1进行通讯,将搜索请求发送至节点1,在节点1中的分片1’进行查询;2.本地分片优先,即优先在本地节点中的分片进行查询,若查询不到,则再到其它分片进行查询,即节点2先在本地查询,由于节点2只包含分片2’和分片3’(副本),因此无法在本地查询,则节点2可与节点1或节点3进行通讯,将搜索请求发送至节点1中的分片1’或节点3中的分片1’(副本)进行查询;3.随机,即随机选取分片进行查询,可能是主分片也可能是副本,即节点2通过读取集群索引元数据表,将搜索请求随机的发送至节点1或节点3进行查询;各个分片的查询结果最终汇总回那节点,在那节点里面对结果进行合并,把最终的结果返回给客户端;其中任何一个步骤发生错误都会返回索引错误信息到客户端。
Claims (6)
1.一种基于p2p的分布式实时搜索引擎,其特征在于:其集群中包含若干节点,每个节点包含有一个以上的索引,各索引又被分为一个以上的索引分片,所述索引分片仅包含主分片或同时包含主分片和一个以上的副本;各节点相互独立,通过对等网络连接,通过广播和多播的方式进行通讯,各独立的节点内均存储有反映整个集群中所有节点的索引信息的集群索引元数据表,在索引更新和搜索时,节点读取集群索引元数据表并根据请求的属性,将请求发送至对应节点进行索引或查询。
2.一种基于p2p的分布式实时搜索引擎的索引方法,其特征在于,包括如下步骤:
客户端发送索引请求至集群中的某一节点;该节点对客户端发送的数据索引进行解析,从中提取该数据索引的属性信息;
同时该节点通过读取集群索引元数据表,找到包含该属性信息的主分片的节点,并将索引请求发送至这些主分片进行索引;
若主分片索引成功,该节点再把索引请求发送至这些主分片的副本所在节点进行索引;若主分片索引失败,则返回失败信息到客户端。
3.一种基于p2p的分布式实时搜索引擎的搜索方法,其特征在于,包括如下步骤:
客户端发送搜索请求至集群中的某一节点;该节点对客户端发送的查询索引进行解析,并判断其所针对的目标索引;
然后该节点通过读取集群索引元数据表并比对目标索引的属性信息,查找包含该目标索引分片的节点;
查看分片查询条件,根据查询条件,该节点将搜索请求发送至包含该索引的主分片或者副本查询。
4.根据权利要求1所述的一种基于p2p的分布式实时搜索引擎,其特征在于:所述集群间的通信基于P2P,集群中的各个节点可相互通信。
5.根据权利要求1所述的一种基于p2p的分布式实时搜索引擎,其特征在于:所述索引步骤中,节点中的索引存储在内存和硬盘,主分片和副本所在节点在收到索引请求后,先将数据索引存储至内存;再将数据索引写入备忘日志文件,最后将其写入硬盘上的索引文件中。
6.根据权利要求1所述的一种基于p2p的分布式实时搜索引擎,其特征在于:所述集群中的某个节点用于维护整个集群状态,以及各个节点的存储和维护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101793078A CN103258036A (zh) | 2013-05-15 | 2013-05-15 | 一种基于p2p的分布式实时搜索引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101793078A CN103258036A (zh) | 2013-05-15 | 2013-05-15 | 一种基于p2p的分布式实时搜索引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103258036A true CN103258036A (zh) | 2013-08-21 |
Family
ID=48961953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101793078A Pending CN103258036A (zh) | 2013-05-15 | 2013-05-15 | 一种基于p2p的分布式实时搜索引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103258036A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208105A (zh) * | 2015-08-26 | 2015-12-30 | 北京奇虎科技有限公司 | 索引更新方法和装置 |
CN106407376A (zh) * | 2016-09-12 | 2017-02-15 | 杭州数梦工场科技有限公司 | 重建索引方法及装置 |
CN106528567A (zh) * | 2015-09-11 | 2017-03-22 | 北京国双科技有限公司 | 网络爬虫集群信息的更新方法和装置 |
CN106936899A (zh) * | 2017-02-25 | 2017-07-07 | 九次方大数据信息集团有限公司 | 分布式统计分析系统的配置方法及分布式统计分析系统 |
CN109033398A (zh) * | 2018-08-02 | 2018-12-18 | 广州酷狗计算机科技有限公司 | 分配节点的方法和装置 |
CN109600436A (zh) * | 2018-12-10 | 2019-04-09 | 浪潮电子信息产业股份有限公司 | 一种分布式iscsi服务实现方法、系统及相关装置 |
CN109992196A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视数字技术股份有限公司 | 索引数据的存储方法及装置、存储系统 |
CN110046062A (zh) * | 2019-03-07 | 2019-07-23 | 佳都新太科技股份有限公司 | 分布式数据处理方法及系统 |
CN110175151A (zh) * | 2019-05-22 | 2019-08-27 | 中国农业科学院农业信息研究所 | 一种农业大数据的处理方法、装置、设备和存储介质 |
CN110489579A (zh) * | 2019-08-21 | 2019-11-22 | 深见网络科技(上海)有限公司 | 分布式向量检索引擎 |
CN110765092A (zh) * | 2019-09-20 | 2020-02-07 | 北京三快在线科技有限公司 | 分布式搜索系统、索引分发方法及存储介质 |
CN110781135A (zh) * | 2019-09-20 | 2020-02-11 | 北京三快在线科技有限公司 | 分布式搜索系统、索引分发方法及存储介质 |
CN113132267A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种分布式系统、数据聚合方法和计算机可读存储介质 |
CN113282242A (zh) * | 2021-05-31 | 2021-08-20 | 杭州海康存储科技有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
CN114143182A (zh) * | 2021-11-18 | 2022-03-04 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004046960A1 (en) * | 2002-11-16 | 2004-06-03 | International Business Machines Corporation | System and method for conducting adaptive search using a peer-to-peer network |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN102955792A (zh) * | 2011-08-23 | 2013-03-06 | 崔春明 | 一种实时全文搜索引擎事务处理的实现方法 |
-
2013
- 2013-05-15 CN CN2013101793078A patent/CN103258036A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004046960A1 (en) * | 2002-11-16 | 2004-06-03 | International Business Machines Corporation | System and method for conducting adaptive search using a peer-to-peer network |
CN1705944A (zh) * | 2002-11-16 | 2005-12-07 | 国际商业机器公司 | 使用对等网络执行自适应搜索的系统和方法 |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN102955792A (zh) * | 2011-08-23 | 2013-03-06 | 崔春明 | 一种实时全文搜索引擎事务处理的实现方法 |
Non-Patent Citations (3)
Title |
---|
KIMCHY 等: "elasticsearch", 《HTTPS://GITHUB.COM/ELASTIC/ELASTICSEARCH/RELEASES/TAG/V0.19.7》 * |
KIMCHY 等: "elasticsearch", 《HTTPS://GITHUB.COM/ELASTIC/ELASTICSEARCH/RELEASES/TAG/V0.19.7》, 27 June 2012 (2012-06-27) * |
LIZHIZERO 等: "elasticsearch", 《HTTP://BAIKE.BAIDU.COM/HISTORY/ELASTICSEARCH/35827072》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208105B (zh) * | 2015-08-26 | 2019-03-08 | 北京奇虎科技有限公司 | 索引更新方法和装置 |
CN105208105A (zh) * | 2015-08-26 | 2015-12-30 | 北京奇虎科技有限公司 | 索引更新方法和装置 |
CN106528567A (zh) * | 2015-09-11 | 2017-03-22 | 北京国双科技有限公司 | 网络爬虫集群信息的更新方法和装置 |
CN106528567B (zh) * | 2015-09-11 | 2019-11-12 | 北京国双科技有限公司 | 网络爬虫集群信息的更新方法和装置 |
CN110990399B (zh) * | 2016-09-12 | 2023-04-28 | 杭州数梦工场科技有限公司 | 重建索引方法及装置 |
CN106407376A (zh) * | 2016-09-12 | 2017-02-15 | 杭州数梦工场科技有限公司 | 重建索引方法及装置 |
CN110990399A (zh) * | 2016-09-12 | 2020-04-10 | 杭州数梦工场科技有限公司 | 重建索引方法及装置 |
CN106407376B (zh) * | 2016-09-12 | 2019-12-20 | 杭州数梦工场科技有限公司 | 重建索引方法及装置 |
CN106936899A (zh) * | 2017-02-25 | 2017-07-07 | 九次方大数据信息集团有限公司 | 分布式统计分析系统的配置方法及分布式统计分析系统 |
CN109992196B (zh) * | 2017-12-29 | 2022-05-17 | 杭州海康威视数字技术股份有限公司 | 索引数据的存储方法及装置、存储系统 |
CN109992196A (zh) * | 2017-12-29 | 2019-07-09 | 杭州海康威视数字技术股份有限公司 | 索引数据的存储方法及装置、存储系统 |
CN109033398B (zh) * | 2018-08-02 | 2021-03-30 | 广州酷狗计算机科技有限公司 | 分配节点的方法和装置 |
CN109033398A (zh) * | 2018-08-02 | 2018-12-18 | 广州酷狗计算机科技有限公司 | 分配节点的方法和装置 |
CN109600436A (zh) * | 2018-12-10 | 2019-04-09 | 浪潮电子信息产业股份有限公司 | 一种分布式iscsi服务实现方法、系统及相关装置 |
CN109600436B (zh) * | 2018-12-10 | 2021-06-29 | 浪潮电子信息产业股份有限公司 | 一种分布式iscsi服务实现方法、系统及相关装置 |
CN110046062B (zh) * | 2019-03-07 | 2021-03-19 | 佳都新太科技股份有限公司 | 分布式数据处理方法及系统 |
CN110046062A (zh) * | 2019-03-07 | 2019-07-23 | 佳都新太科技股份有限公司 | 分布式数据处理方法及系统 |
CN110175151A (zh) * | 2019-05-22 | 2019-08-27 | 中国农业科学院农业信息研究所 | 一种农业大数据的处理方法、装置、设备和存储介质 |
CN110489579A (zh) * | 2019-08-21 | 2019-11-22 | 深见网络科技(上海)有限公司 | 分布式向量检索引擎 |
CN110765092A (zh) * | 2019-09-20 | 2020-02-07 | 北京三快在线科技有限公司 | 分布式搜索系统、索引分发方法及存储介质 |
CN110781135B (zh) * | 2019-09-20 | 2023-05-30 | 北京三快在线科技有限公司 | 分布式搜索系统、索引分发方法及存储介质 |
CN110781135A (zh) * | 2019-09-20 | 2020-02-11 | 北京三快在线科技有限公司 | 分布式搜索系统、索引分发方法及存储介质 |
CN113132267B (zh) * | 2019-12-31 | 2022-09-02 | 奇安信科技集团股份有限公司 | 一种分布式系统、数据聚合方法和计算机可读存储介质 |
CN113132267A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种分布式系统、数据聚合方法和计算机可读存储介质 |
CN113282242A (zh) * | 2021-05-31 | 2021-08-20 | 杭州海康存储科技有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
CN114143182A (zh) * | 2021-11-18 | 2022-03-04 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
CN114143182B (zh) * | 2021-11-18 | 2024-02-23 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103258036A (zh) | 一种基于p2p的分布式实时搜索引擎 | |
US7440977B2 (en) | Recovery method using extendible hashing-based cluster logs in shared-nothing spatial database cluster | |
CN102708165B (zh) | 分布式文件系统中的文件处理方法及装置 | |
CN111858097A (zh) | 分布式数据库系统、数据库访问方法 | |
CN105138571B (zh) | 分布式文件系统及其存储海量小文件的方法 | |
US20100161657A1 (en) | Metadata server and metadata management method | |
CN102169507A (zh) | 一种分布式实时搜索引擎 | |
CN105677826A (zh) | 一种针对海量非结构化数据的资源管理方法 | |
CN111597160A (zh) | 分布式数据库系统、分布式数据处理方法和装置 | |
US12050578B2 (en) | Distributed database management system with dynamically split B-Tree indexes | |
CN102201010A (zh) | 无共享架构的分布式数据库系统及其实现方法 | |
CN103067461A (zh) | 一种文件的元数据管理系统以及元数据管理方法 | |
CN112035420B (zh) | 数据共享方法、共享设备和系统 | |
US11775480B2 (en) | Method and system for deleting obsolete files from a file system | |
CN103605778A (zh) | 一种视频文件的定位方法、装置及系统 | |
CN109328331B (zh) | 用于异步存储服务的自组织存储系统 | |
CN104008199A (zh) | 一种数据查询方法 | |
CN104750757A (zh) | 一种基于HBase的数据存储方法和设备 | |
US20100030819A1 (en) | Method, system and apparatus to seamlessly manage and access files across multiple devices | |
CN107493309B (zh) | 一种分布式系统中的文件写入方法及装置 | |
CN105589910A (zh) | 基于HBase的海量交易数据检索及系统 | |
US20130006920A1 (en) | Record operation mode setting | |
CN104516945A (zh) | 一种基于关系数据库的hdfs元数据存储方法 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
CN107659626B (zh) | 面向临时元数据的分离存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130821 |