CN106156166B - 关系链查询系统、文档检索方法、索引建立方法及装置 - Google Patents
关系链查询系统、文档检索方法、索引建立方法及装置 Download PDFInfo
- Publication number
- CN106156166B CN106156166B CN201510180500.2A CN201510180500A CN106156166B CN 106156166 B CN106156166 B CN 106156166B CN 201510180500 A CN201510180500 A CN 201510180500A CN 106156166 B CN106156166 B CN 106156166B
- Authority
- CN
- China
- Prior art keywords
- index
- user
- document
- server
- range
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种关系链查询系统、文档检索方法、索引建立方法及装置,属于互联网技术领域。所述索引建立方法包括:对于每个索引服务器,根据索引服务器中的文档集合建立第一索引;对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。本发明达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种关系链查询系统、文档检索方法、索引建立方法及装置。
背景技术
在通讯类应用中,一个用户与关联用户之间的好友关系被称为关系链。该好友关系泛指两个用户是通讯类应用中的好友、一个用户关注另一个用户、一个用户存储有另一个用户的电话号码等等,而关系链搜索则是指根据当前用户对应的关系链,在当前用户的好友所发布的消息中,查找出包含目标关键词的消息。
用户在通讯类应用中发布的消息可以被认为是文档,而现有技术在实现关系链搜索时,会预先在关系链服务器中存储每个用户标识和与其对应的好友用户标识之间的对应关系;在文档服务器中存储每个用户标识与文档标识之间的对应关系,该文档标识指该用户标识对应的用户所发布的文档的标识;在关键词服务器中存储关键词与文档标识之间的对应关系。
当搜索方用户发起关系链搜索时,客户端根据搜索方用户输入的目标关键词,向关系链服务器发送携带有搜索方用户标识和目标关键词的搜索请求。关系链服务器根据搜索请求中携带的搜索方用户标识,查找到与搜索方用户标识对应的好友用户标识,并将好友用户标识和目标关键词一同发送至文档服务器。文档服务器根据接收到的好友用户标识,查找到该好友用户标识对应的文档标识,并与目标关键词一同发送至关键词服务器。关键词服务器查找出包含有目标关键词的文档标识,并与接收到的好友用户标识对应的文档标识求交,即可确定出用户的好友所发布的文档中,包含该目标关键词的文档。
在实现本发明实施例的过程中,发明人发现上述技术至少存在以下问题:由于每个用户都拥有大量好友,且每个好友又会发布大量文档,当文档服务器将查找到的大量文档标识发送给关键词服务器时,容易产生网络拥塞,影响搜索的效率,甚至导致搜索失败。
发明内容
为了解决上述技术的问题,本发明实施例提供了一种关系链查询系统、文档检索方法、索引建立方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种关系链查询系统,所述系统包括:关系链服务器和至少一个索引服务器,关系链服务器分别与索引服务器相连;
关系链服务器,用于存储每个用户和每个用户的好友用户之间的对应关系;
每个索引服务器与一个用户标识范围对应;
每个索引服务器,用于存储文档集合、第一索引和第二索引;
文档集合包括至少一个用户发布的各个文档,至少一个用户是用户标识属于用户标识范围内的用户;
第一索引包括文档集合中的每个用户和每个用户发布的文档的对应关系;
第二索引包括各个关键词和文档集合中的各个文档的对应关系,关键词是根据预定规则从文档中划分出的分词。
根据本发明实施例的第二方面,提供一种文档检索方法,用于第一方面所述的关系链服务器中,所述方法包括:
接收搜索请求,搜索请求携带有目标用户的标识和目标关键词;
查找与目标用户对应的好友用户的标识;
将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含目标关键词的文档。
根据本发明实施例的第三方面,提供一种文档检索方法,用于第一方面所述的索引服务器中,所述方法包括:
接收关系链服务器发送的好友用户的标识和目标关键词;
将第一索引中与好友用户对应的文档确定为第一目标文档;
将第二索引中与目标关键词对应的文档确定为第二目标文档;
将第一目标文档和第二目标文档的交集确定为目标文档。
根据本发明实施例的第四方面,提供一种索引建立方法,用于如第一方面所述的关系链查询系统中,所述方法包括:
对于每个索引服务器,根据索引服务器中的文档集合建立第一索引;
对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;
将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
根据本发明实施例的第五方面,提供一种文档检索装置,用于如第一方面所述的关系链服务器中,所述装置包括:
第一接收模块,用于接收搜索请求,搜索请求携带有目标用户的标识和目标关键词;
查找模块,用于查找与目标用户对应的好友用户的标识;
发送模块,用于将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含目标关键词的文档。
根据本发明实施例的第六方面,提供一种文档检索装置,用于如第一方面所述的索引服务器中,所述装置包括:
第二接收模块,用于接收关系链服务器发送的好友用户的标识和目标关键词;
第一确定模块,用于将第一索引中与好友用户对应的文档确定为第一目标文档;
第二确定模块,用于将第二索引中与目标关键词对应的文档确定为第二目标文档;
第三确定模块,用于将第一目标文档和第二目标文档的交集确定为目标文档。
根据本发明实施例的第七方面,提供一种索引建立装置,用于如第一方面所述的关系链查询系统中,所述装置包括:
第一建立模块,用于对于每个索引服务器,根据索引服务器中的文档集合建立第一索引;
第二建立模块,用于对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;
保存模块,用于将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
本发明实施例提供的技术方案带来的有益效果是:
通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的关系链查询系统的架构图;
图2A是发明一个实施例提供的关系链查询系统的实施示意图;
图2B是本发明一个实施例提供的关系链查询系统中索引服务器存储的索引的示意图;
图2C是本发明一个实施例提供的关系链查询系统中文档分配局部编号过程的实施示意图;
图2D是本发明一个实施例提供的关系链查询系统中索引服务器存储的第一索引和第二索引的示意图;
图3A是本发明一个实施例提供的文档检索方法的方法流程图;
图3B是本发明一个实施例提供的文档检索方法所涉及的目标关键词发送过程的方法流程图;
图4是本发明另一实施例提供的文档检索方法的方法流程图;
图5A是本发明一个实施例提供的索引建立方法的方法流程图;
图5B是本发明另一实施例提供的索引建立方法的方法流程图;
图6是本发明一个实施例提供的文档检索方法的方法流程图;
图7是本发明一个实施例提供的文档检索装置的结构方框图;
图8是本发明另一实施例提供的文档检索装置的结构方框图;
图9是本发明再一实施例提供的文档检索装置的结构方框图;
图10是本发明又一实施例提供的文档检索装置的结构方框图;
图11是本发明一个实施例提供的索引建立装置的结构方框图;
图12是本发明另一实施例提供的索引建立装置的结构方框图;
图13是本发明一个实施例提供的服务器的方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的关系链查询系统的架构图。该系统包括:终端110、关系链服务器120和至少一个索引服务器130,关系链服务器120分别与各个索引服务器130相连。
终端110可以是智能手机、智能电视、平板电脑、电子书阅读器、MP3(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机等等。终端110是用户所使用的终端。
终端110与关系链服务器120之间可以通过无线网络或者有线网络相连。
关系链服务器120可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该关系链服务器120是用于存储每个用户和每个用户的好友用户之间的对应关系。
关系链服务器120与各个索引服务器130之间可以通过无线网络或者有线网络相连。
索引服务器130可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该索引服务器130是用于进行关键词检索的服务器。
图1所示的终端110中安装有微博客户端、博客客户端或即时通讯客户端之类的通讯类应用,通常情况下,用户需要使用唯一的帐号和匹配的密码才可以登录并使用这类应用。用户在使用这类应用的过程中,还会与其它用户之间产生好友关系,该好友关系泛指两个用户是通讯类应用中的好友、一个用户关注另一个用户、一个用户存储有另一个用户的电话号码等等。
用户可以使用这类应用发布消息,对于不同的应用,该消息的表现形式也不同,比如,当该应用为微博客户端时,该消息可以指用户发布的一条微博或一篇长微博;又比如,当该应用为博客客户端时,该消息可以指用户发布的一篇博客等等。而服务器端在存储用户发布的消息时,将每条消息都作为一个文档进行存储。
用户在使用这类应用时,往往会想查找其好友之前发布的某条消息,但是仅仅记得其中的某个关键词,此时,用户即可以通过输入关键词,在好友发布的消息中查找包含该关键词的消息。比如,如图2A所示,应用界面21中设置有关键词输入框22,当用户在关键词输入框22中输入关键词“天气”,并点击搜索时,即可获取好友发布的消息中,包含关键词“天气”的消息。
为了实现上述针对用户关系链的搜索,在示意性的实施例中:
关系链服务器120,用于存储每个用户和每个用户的好友用户之间的对应关系,该对应关系可以示意性如表一所示。
表一
用户标识 | 好友用户标识 |
USER1 | USER2、USER3 |
USER2 | USER1、USER3 |
USER3 | USER1、USER2、USER4 |
USER4 | USER3 |
其中,该用户标识可以为用户登录这类应用时的帐号或用户名等等。需要说明的是,采用帐号或用户名作为用户标识时,不同用户对应的用户标识的长度可能不同,为了保证存储的用户标识的长度一致,关键链服务器还可以对保存的用户标识进行一致性哈希处理,并对处理后的用户标识对应的哈希值进行存储。
每个索引服务器130与一个用户标识范围对应。由于存在大量使用该应用的用户,如果将所有用户对应的文档都存储在一个索引服务器中,会导致索引服务器处理压力过大,所以为了减轻单个索引服务器的处理压力,该关系链查询系统中设置有多个索引服务器,且每个索引服务器与一个用户标识范围对应。每个索引服务器对应的用户标识范围可以根据一致性哈希算法处理后用户标识的长度与索引服务器的数量确定。
比如,对用户标识均使用一致性哈希算法处理后得到6位的整型数值,即对各个用户标识进行一致性哈希算法处理后,得到的整型数值范围为000000至999999。当该系统中设置有5个索引服务器时,即可将6位整型数值划分为5个区间,对应的(经过一致性哈希算法处理后的)用户标识范围分别为:000000至199999、200000至399999、400000至599999、600000至799999和800000至999999。需要说明的,在实际的使用过程中,由于用户数量十分庞大,该一致性哈希算法可以为诸如MD5(Message Digest algorithm 5,消息摘要算法第五版)一类的算法,而经过该算法处理后得到的用户标识对应的哈希值可以为64位的整型数值,本实施例仅以经过一致性哈希处理后得到的6位整型数值为例进行说明,并不对本发明构成限定。
每个索引服务器130,用于存储文档集合、第一索引和第二索引;文档集合包括至少一个用户发布的各个文档,至少一个用户是用户标识属于用户标识范围内的用户。第一索引包括文档集合中的每个用户和每个用户发布的文档的对应关系;第二索引包括各个关键词和文档集合中的各个文档的对应关系,关键词是根据预定规则从文档中划分出的分词。
根据划分的用户标识区间,在每个索引服务器中建立一个文档集合,该文档集合中用于存储该用户标识范围内各个用户发布的所有文档。
比如,索引服务器对应的用户标识范围为000000至199999,该索引服务器存储的文档集合中,即包括用户标识在000000至199999范围内的各个用户发布的所有文档。
索引服务器中还存储有包括对应文档集合中每个用户和每个用户发布的文档的对应关系的第一索引,该对应关系示意性如表二所示。
表二
用户标识 | 文档标识 |
USER1 | DOC1、DOC2 |
USER2 | DOC3、DOC4、DOC5 |
USER3 | DOC6、DOC7 |
索引服务器中还存储有包括各个关键词和文档集合中各个文档的对应关系的第二索引,该对应关系示意性如表三所示。
表三
关键词 | 文档标识 |
A | DOC1、DOC2、DOC7 |
B | DOC1、DOC3、DOC4 |
C | DOC4、DOC5、DOC6 |
每个索引服务器即可根据上述对应关系建立相应的倒排索引,其中,第一索引包括每个用户标识和每个用户标识对应的文档标识之间的倒排索引;该用户标识是文档集合中的用户的标识,该文档标识是文档集合中的文档的标识;对应的,第二索引包括各个关键词与文档标识之间的倒排索引,建立的倒排索引可以示意性的如图2B所示。
当关系链服务器接收到终端发送的携带有用户标识和目标关键词的搜索请求时,可以在表一所示的对应关系中查找到该用户标识对应的好友用户标识,并根据好友用户标识对应的哈希值,将好友用户标识和目标关键词一同发送至对应的索引服务器。索引服务器根据好友用户标识在第一索引中查找到对应的倒排,根据目标关键词在第二索引中查找到对应的倒排,并对两个倒排求交,即可确定好友发布的文档中,包含该目标关键词的文档。
比如,终端向关系链服务器发送的搜索请求中,携带的用户标识为“USER1”,目标关键词为“B”,关系链服务器根据该用户标识在表一中查找到对应的好友用户标识为“USER2”和“USER3”。关系链查询系统中设置有索引服务器A和索引服务器B,对应的用户标识范围分别为000至099和100至199。关系链服务器对查找到的好友用户标识进行一致性哈希处理,得到“USER2”对应的哈希值为010,“USER3”对应的哈希值为015,即将“USER2”、“USER3”和“B”发送至索引服务器A。索引服务器A在图2B所示的倒排索引中查找到“USER2”对应的倒排为DOC3、DOC4和DOC5,“USER3”对应的倒排为DOC6和DOC7,目标关键词“B”对应的倒排为DOC1、DOC3和DOC4,索引服务器分别对“USER2”对应的倒排与目标关键词“B”对应的倒排求交,对“USER3”对应的倒排与目标关键词“B”对应的倒排求交,从而确定“USER2”对应的DOC3和DOC4为“USER1”的好友发布的文档中包含该目标关键词“B”的文档。显而易见的,由于第一索引和第二索引保存在同一索引服务器中,查找和求交的过程均在同一索引服务器中完成,不再需要通过网络发送查找到的文档标识,避免了网络拥塞。
综上所述,本实施例提供的关系链查询系统,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过在关系链查询系统中设置至少一个索引服务器,每个索引服务器与一个用户标识范围对应,并保存该用户标识范围内用户对应的所有文档,使得在进行文档检索过程中,可以由多个索引服务器进行并行求交,减轻了单个索引服务器的处理压力,进一步提高了检索的速度。
由于索引服务器中存储的文档标识通常采用64位的无符号整型数,且同一用户发布的文档的文档标识也不一定连续,使用这种形式的文档标识直接进行倒排求交需要使用大量计算资源,严重影响求交的速度。所以为了进一步提高检索的速度,在另一示意性的实施例中:
第一索引包括每个用户标识与第一索引范围的对应关系,第一索引范围包括:用户标识对应的各个文档在文档集合中的最小局部编号和最大局部编号,局部编号是在文档集合中根据各个用户标识排序后,对各个文档所分配的编号,同一个用户标识对应的各个文档的局部编号连续。
比如,如图2C所示,索引服务器的文档集合中存储有文档标识为DOC1、DOC2、DOC3、DOC4、DOC5、DOC6和DOC7的文档,且文档标识与用户标识的对应关系如表二所示。假设对用户标识分别使用一致性哈希算法处理后得到的哈希值分别为030(USER1)、010(USER2)和015(USER3),按照哈希值从小到大排序可以得到:010(USER2)、015(USER3)、030(USER1),对应的,根据用户标识对各个文档排序,可以得到:DOC3、DOC4、DOC5、DOC6、DOC7、DOC1、DOC2。根据该排序为各个文档分配局部编号,得到文档标识与局部编号的对应关系为:(DOC3,1)、(DOC4,2)、(DOC5,3)、(DOC6,4)、(DOC7,5)、(DOC1,6)、(DOC2,7)。显而易见的,“USER1”对应的文档的最小局部编号为6,最大局部编号为7;“USER2”对应的文档的最小局部编号为1,最大局部编号为3;“USER3”对应的文档的最小局部编号为4,最大局部编号为5,即可确定“USER1”对应的第一索引范围为6至7;“USER2”对应的第一索引范围为1至3;“USER1”对应的第一索引范围为4至5。
与第一索引相似的,第二索引还包括每个关键词与第二索引范围的对应关系,第二索引范围包括:携带有关键词的各个文档在文档集合中的最小局部编号和最大局部编号。
需要说明的是,由于关键词对应的各个文档的局部编号不一定连续,所以第二索引在包括每个关键词与第二索引范围的对应关系的同时,还需要包括每个关键词对应的具体倒排。
示意性地,生成的第一索引和第二索引如图2D所示。显而易见的,由于同一个用户标识对应的各个文档的局部编号连续,所以第一索引中仅需要建立用户标识与第一索引范围的对应关系,而不再需要建立用户标识和对应的文档标识之间的倒排索引,减少了索引存储的空间;另外,为各个文档分配一个较短的局部编号也有利于进行倒排求交,从而进一步加快检索的速度。
请参考图3A,其示出了本发明一个实施例提供的文档检索方法的方法流程图。本实施例以该文档检索方法应用于图1所示的关系链服务器120中来举例说明。该方法包括:
步骤301,接收搜索请求,搜索请求携带有目标用户的标识和目标关键词。
如图2A所示,终端的应用界面21中设置有关键词输入框22,当用户在关键词输入框22中输入关键词“天气”,并点击搜索时,终端即向关系链服务器发送搜索请求,该搜索请求中携带的目标用户的标识即为“张三”,目标关键词即为“天气”。
步骤302,查找与目标用户对应的好友用户的标识。
关系链服务器根据接收到的目标用户的标识,在表一所示的用户标识与好友用户标识的对应关系中,查找到该目标用户对应的好友用户的标识。
步骤303,将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,该索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含该目标关键词的文档。
由于每个索引服务器与一个用户标识范围对应,且该用户标识范围可以根据用户标识对应哈希值的长度与索引服务器的数量确定,所以关系链服务器需要对查找到的好友用户的标识进行一致性哈希处理,得到好友用户的标识对应的哈希值,再根据该哈希值确定好友用户对应的索引服务器。作为一种可能的实现方式,如图3B所示,本步骤可以包括如下步骤。
步骤303A,通过一致性哈希算法获取好友用户的标识对应的哈希值。
比如,索引服务器对应的用户标识范围是根据一致性哈希算法处理后得到6位的整型数值与索引服务器的数量确定的,且关系链查询系统中包含5个索引服务器,因此,5个索引服务器对应的用户标识范围分别为000000至199999、200000至399999、400000至599999、600000至799999和800000至999999。关系链服务器使用该一致性哈希算法,对查找到的好友用户的标识进行处理,得到对应的哈希值。
步骤303B,根据哈希值所属的用户标识范围,查找与哈希值对应的索引服务器。
比如,关系链服务器对查找到的好友用户的标识进行一致性哈希处理后,得到该好友用户的标识对应的哈希值为“123456”,由于该哈希值属于000000至199999这个用户标识范围,关系链服务器将该用户标识范围对应的索引服务器确定为与该哈希值对应的索引服务器,即该好友用户对应的索引服务器。
步骤303C,将好友用户的标识和目标关键词发送至查找出的索引服务器。
关系链服务器将该好友用户的标识和目标关键词一同发送至好友用户对应的索引服务器。
综上所述,本实施例提供的文档检索方法,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过在关系链查询系统中设置至少一个索引服务器,每个索引服务器与一个用户标识范围对应,并保存该用户标识范围内用户对应的所有文档,使得在进行文档检索过程中,可以由多个索引服务器进行并行求交,减轻了单个索引服务器的处理压力,进一步提高了检索的速度。
请参考图4,其示出了本发明另一实施例提供的文档检索方法的方法流程图。本实施例以该文档检索方法应用于图1所示的索引服务器130中来举例说明。该方法包括:
步骤401,接收关系链服务器发送的好友用户的标识和目标关键词;
步骤402,将第一索引中与好友用户对应的文档确定为第一目标文档;
步骤403,将第二索引中与目标关键词对应的文档确定为第二目标文档;
步骤404,将第一目标文档和第二目标文档的交集确定为目标文档。
综上所述,本实施例提供的文档检索方法,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图5A,其示出了本发明一个实施例提供的索引建立方法的方法流程图。该方法包括:
步骤501,对于每个索引服务器,根据所索引服务器中的文档集合建立第一索引;
步骤502,对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;
步骤503,将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
综上所述,本实施例提供的索引建立方法,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图5B,其示出了本发明另一实施例提供的索引建立方法的方法流程图。该索引建立方法用于图1所示的关系链查询系统中,该方法包括:
步骤501,通过一致性哈希算法获取文档集合中每个用户的标识对应的哈希值。
为了减轻单个索引服务器的处理压力,关系链查询系统中包括多个索引服务器,且每个索引服务器与一个用户标识范围对应,该用户标识范围可以根据一致性哈希算法处理后用户标识的长度与索引服务器的数量确定。在确定了各个索引服务器对应的用户标识范围后,各个索引服务器中的文档集合对该用户标识范围对应用户发布的所有文档进行存储。
索引服务器获取文档集合中的每个用户标识,并使用一致性哈希算法对用户标识进行处理,得到对应的哈希值。该一致性哈希算法可以是诸如MD5一类的算法,本发明并不对采用何种一致性哈希算法进行限定。
步骤502,根据每个用户的标识的哈希值,对文档集合中的各个文档进行排序。
索引服务器获取到文档集合中各个用户标识对应的哈希值,并根据哈希值的大小顺序,对用户标识对应的文档进行排序。
比如,索引服务器存储的文档集合中包含的文档的文档标识分别DOC1、DOC2、DOC3、DOC4、DOC5、DOC6和DOC7,包含的用户标识分别为USER1、USER2和USER3,且用户标识与文档标识的对应关系如表二所示。假设索引服务器使用一致性哈希算法对用户标识进行处理,得到对应的“USER1”对应的哈希值为030,“USER2”对应的哈希值为010,“USER3”对应的哈希值为015,并按照由小到大的顺序,对用户标识对应的哈希值进行排序,形成如图2C所示的序列。
需要说明的是,根据用户标识对应的哈希值对文档进行排序,可以按照哈希值的升序或降序排列,本发明并不对此进行限定。
步骤503,为排序后的文档分配局部编号,同一个用户标识对应的各个文档的局部编号连续。
在排序后,索引服务器为各个文档分配局部编号,该局部编号可以是从1开始的无符号整形数字,且对于同一用户标识对应的各个文档,该局部编号连续。为排序后的文档分配的局部编号可以如图2C所示。
步骤504,获取每个用户对应的文档的最小局部编号和最大局部编号;将最小局部编号和最大局部编号确定为第一索引范围;将每个用户的标识和第一索引范围的对应关系,作为第一索引。
由于同一个用户标识对应的各个文档的局部编号连续,所以根据用户标识对应的文档的最小局部编号和最大局部编号即可确定该用户标识对应的各个文档的局部编号。为了减少建立的索引所占用的空间,索引服务器获取每个用户对应文档的最小局部编号和最大局部编号,将最小局部编号和最大局部编号确定为第一索引范围,并将用户标识和第一索引范围的对应关系,作为第一索引,生成如图2D所示的第一索引。
作为另一种可能的实现方式,索引服务器也可以建立每个用户的标识和每个用户对应的文档的局部编号之间的倒排索引,并将该倒排索引作为第一索引,即索引服务器对用户标识对应文档的所有局部编号进行记录。
步骤505,获取各个关键词对应的文档的最小局部编号和最大局部编号;将最小局部编号和最大局部编号确定为第二索引范围;将各个关键词和第二索引范围的对应关系,作为第二索引。
与建立第一索引相似的,在建立第二索引的过程中,索引服务器也可以获取各个关键词对应的文档的最小局部编号和最大局部编号,将最小局部编号和最大局部编号确定为第二索引范围,并将各个关键词和第二索引范围的对应关系,作为第二索引。
但是由于关键词对应文档在排序过程中不一定集中,导致关键词对应文档的局部编号不连续,所以索引服务器还需要建立各个关键词和各个文档对应的局部编号之间的倒排索引,并与第二索引范围一起,生成如图2D所示的第二索引。
作为另一种可能的实现方式,索引服务器也可以仅建立各个关键词和各个文档对应的局部编号之间的倒排索引,并将倒排索引作为第二索引,而不需要建立各个关键词和第二索引范围的对应关系。本实施例仅以该第二索引中包括各个关键词和第二索引范围的对应关系为例进行说明,并不对本发明构成限定。
步骤506,将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
索引服务器将建立的第一索引和第二索引保存在同一索引服务器中,使得后续的文档检索过程中,索引服务器即可自行实现整个检索过程,不再需要与其他的服务器进行数据的传输,从而避免网络拥塞。
需要说明的是,上述步骤501至步骤506可以由图1中的索引服务器130在离线阶段、每隔预定时间间隔或实时执行,也可以由索引建立服务器(图中未示出)在离线阶段、每隔预定时间间隔或实时执行,并将建立的第一索引和第二索引下发到对应的索引服务器,即执行主体可以为索引服务器,也可以为索引建立服务器,本实施例仅以上述步骤的执行主体为索引服务器为例进行说明,并不本发明构成限定。
综上所述,本实施例提供的索引建立方法,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过按照用户标识对应的哈希值对文档集合中的文档进行排序,并分配相应的局部编号,使得同一用户对应的文档集中存放,且相较于文档标识,占用更少的存储空间;并且在建立第一索引的过程中,仅记录用户标识与最小局部编号和最大局部编号的对应关系,从而进一步减少建立的索引占用的空间。
经过上述步骤501至步骤506,关系链查询系统中的各个索引服务器均包含了文档集合、第一索引和第二索引。当终端发起搜索请求时,即可通过关系链服务器与各个索引服务器实现文档的检索。下面采用一个实施例进行说明。
请参考图6,其示出了本发明一个实施例提供的文档检索方法的方法流程图。本实施例以该文档检索方法应用于图1所示的关系链查询系统中来举例说明,且为了方便理解,本实施例结合表一、表二及表三中的数据进行举例说明。该方法包括:
步骤601,关系链服务器接收搜索请求,搜索请求携带有目标用户的标识和目标关键词。
步骤602,关系链服务器查找与目标用户对应的好友用户的标识。
步骤603,关系链服务器将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含目标关键词的文档。
上述步骤601至步骤603的实现方式与步骤301至步骤303相似,在此不再赘述。
步骤604,索引服务器接收关系链服务器发送的好友用户的标识和目标关键词。
对应的,索引服务器接收关系链服务器发送的好友用户的标识和目标关键词。
比如,索引服务器接收到关系连服务器发送的好友用户的标识分别为“USER1”和“USER2”,目标关键词为“B”。
步骤605,索引服务器获取好友用户的标识对应的第一索引范围。
当索引服务器中预存的第一索引包括每个用户标识与第一索引范围的对应关系时,索引服务器获取好友用户的标识对应的第一索引范围。
比如,索引服务器根据图2D所示的用户标识与第一索引范围的对应关系,获取“USER2”对应的第一索引范围为“1至3”,“USER3”对应的第一索引范围为“4至5”。
步骤606,索引服务器将第一索引范围内的各个文档标识所指示的文档,确定为第一目标文档。
由于同一用户标识对应的文档的局部编号连续,所以索引服务器根据获取到的第一索引范围即可确定该用户标识对应的所有文档,并将该文档确定为第一目标文档。
比如,“USER2”对应的第一索引范围为“1至3”,索引服务器即可确定“USER2”对应的文档的局部编号为1、2和3;“USER3”对应的第一索引范围为“4至5”,索引服务器即可确定“USER3”对应的文档的局部编号为4和5。
步骤607,索引服务器获取目标关键词对应的第二索引范围。
当索引服务器中预存的第二索引包括每个关键词与第二索引范围的对应关系时,索引服务器获取目标关键词对应的第二索引范围。
比如,索引服务器根据图2D所示的用户标识与第二索引范围的对应关系,获取目标关键词“B”对应的第二索引范围为“1至6”。
步骤608,索引服务器将第二索引中与目标关键词对应的文档确定为第二目标文档。
由于关键词对应的文档在排序过程中不一定集中,导致关键词对应文档的局部编号不连续,所以索引服务器仅根据第二索引范围,不足以确定该目标关键词对应的具体文档倒排。
索引服务器获取到目标关键词对应的第二索引范围后,还需要获取目标关键词对应的倒排索引,并将倒排索引中的各个文档标识所指示的文档,确定为第二目标文档。
比如,如图2D所示,索引服务器获取到目标关键词“B”对应的第二索引范围为1至6,并获取到目标关键词“B”对应的倒排索引为1、2和6。
步骤609,索引服务器检测第一索引范围和第二索引范围是否存在交集。
由于第二索引范围所指示文档的包含目标关键词对应倒排索引指示文档,所以索引服务器可以通过检测第一索引范围和第二索引范围是否存在交集,进一步缩小倒排求交的范围。
当第一索引范围和第二索引范围存在交集时,执行步骤610和611;当第一索引范围和第二索引范围不存在交集时,执行步骤612。
比如,索引服务器检测“USER2”对应的第一索引范围1至3与目标关键词“B”对应的第二索引范围1至6是否存在交集;检测“USER3”对应的第一索引范围4至5与目标关键词“B”对应的第二索引范围1至6是否存在交集。
步骤610,当第一索引范围和第二索引范围存在交集时,索引服务器获取第一索引范围和第二索引范围的交集范围。
比如,“USER2”对应的第一索引范围1至3与目标关键词“B”对应的第二索引范围1至6存在交集,且交集范围为1至3;“USER3”对应的第一索引范围4至5与目标关键词“B”对应的第二索引范围1至6也存在交集,且交集范围为4至5。
步骤611,索引服务器将交集范围与第二目标文档的交集确定为目标文档。
索引服务器将获取到的交集范围,与第二目标文档求交,并将交集确定为目标文档。
比如,索引服务器将交集范围1至3与第二目标文档1、2和6进行求交,从而确定局部编号为1和2的文档为目标文档,即“USER2”对应的文档DOC3和DOC4包含目标关键词“B”;索引服务器将交集范围4至5与第二目标文档1、2和6进行求交,由于该交集范围与第二目标文档不存在交集,从而确定“USER3”对应文档中均不包含目标关键词“B”。
索引服务器在确定了目标文档后,将查找到的目标文档对应的具体内容返回给发起搜索请求的终端,终端随接收到的文档内容进行显示,从而实现整个文档检索过程。
步骤612,当第一索引范围和第二索引范围不存在交集时,索引服务器确定该好友用户对应的文档中不包含目标文档。
由于第二索引范围所指示文档的包含目标关键词对应倒排索引指示文档,当第一索引范围和第二索引范围不存在交集时,第一目标文档与第二目标文档也必定不存在交集,所以当第一索引范围和第二索引范围不存在交集时,索引服务器确定该好友用户对应的文档中不包含目标关键词。
综上所述,本实施例提供的文档检索方法,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过在关系链查询系统中设置至少一个索引服务器,每个索引服务器与一个用户标识范围对应,并保存该用户标识范围内用户对应的所有文档,使得在进行文档检索过程中,可以由多个索引服务器进行并行求交,减轻了单个索引服务器的处理压力,进一步提高了检索的速度。
本实施例还通过按照用户标识对应的哈希值对文档集合中的文档进行排序,并分配相应的局部编号,使得同一用户对应的文档集中存放,且相较于文档标识,占用更少的存储空间;并且在建立第一索引的过程中,仅记录用户标识与最小局部编号和最大局部编号的对应关系,从而进一步减少建立的索引占用的空间。
请参考图7,其示出了本发明一个实施例所提供的文档检索装置的结构方框图。该文档检索装置可以通过软件、硬件或者两者的结合实现成为图1中关系链服务器120的全部或者一部分。该文档检索装置,包括:
第一接收模块710,用于接收搜索请求,搜索请求携带有目标用户的标识和目标关键词;
查找模块720,用于查找与目标用户对应的好友用户的标识;
发送模块730,用于将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含目标关键词的文档。
综上所述,本实施例提供的文档检索装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图8,其示出了本发明另一实施例所提供的文档检索装置的结构方框图。该文档检索装置可以通过软件、硬件或者两者的结合实现成为图1中关系链服务器120的全部或者一部分。该文档检索装置,包括:
第一接收模块810,用于接收搜索请求,搜索请求携带有目标用户的标识和目标关键词;
查找模块820,用于查找与目标用户对应的好友用户的标识;
发送模块830,用于将好友用户的标识和目标关键词发送至与好友用户对应的索引服务器,索引服务器用于根据预存的第一索引和第二索引,在好友用户发布的文档中查找出包含目标关键词的文档。
可选地,发送模块830,包括:
第一获取单元831,用于通过一致性哈希算法获取好友用户的标识对应的哈希值;
查找单元832,用于根据哈希值所属的用户标识范围,查找与哈希值对应的索引服务器;
发送单元833,用于将好友用户的标识和目标关键词发送至查找出的索引服务器。
综上所述,本实施例提供的文档检索装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过在关系链查询系统中设置至少一个索引服务器,每个索引服务器与一个用户标识范围对应,并保存该用户标识范围内用户对应的所有文档,使得在进行文档检索过程中,可以由多个索引服务器进行并行求交,减轻了单个索引服务器的处理压力,进一步提高了检索的速度。
请参考图9,其示出了本发明再一实施例所提供的文档检索装置的结构方框图。该文档检索装置可以通过软件、硬件或者两者的结合实现成为图1中索引服务器130的全部或者一部分。该文档检索装置,包括:
第二接收模块910,用于接收关系链服务器发送的好友用户的标识和目标关键词;
第一确定模块920,用于将第一索引中与好友用户对应的文档确定为第一目标文档;
第二确定模块930,用于将第二索引中与目标关键词对应的文档确定为第二目标文档;
第三确定模块940,用于将第一目标文档和第二目标文档的交集确定为目标文档。
综上所述,本实施例提供的文档检索装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图10,其示出了本发明又一实施例所提供的文档检索装置的结构方框图。该文档检索装置可以通过软件、硬件或者两者的结合实现成为图1中索引服务器130的全部或者一部分。该文档检索装置,包括:
第二接收模块1010,用于接收关系链服务器发送的好友用户的标识和目标关键词;
第一确定模块1020,用于将第一索引中与好友用户对应的文档确定为第一目标文档;
第二确定模块1030,用于将第二索引中与目标关键词对应的文档确定为第二目标文档;
第三确定模块1040,用于将第一目标文档和第二目标文档的交集确定为目标文档。
可选地,第一索引包括每个用户标识与第一索引范围的对应关系,第一索引范围包括:用户标识对应的各个文档在文档集合中的最小局部编号和最大局部编号,局部编号是根据各个用户标识排序后,对各个文档所分配的编号,同一个用户标识对应的各个文档的局部编号连续;
第一确定模块1020,包括:
第二获取单元1021,用于获取好友用户的标识对应的第一索引范围;
第一确定单元1022,用于将第一索引范围内的各个文档标识所指示的文档,确定为第一目标文档。
可选地,第二索引包括各个关键词与文档标识之间的倒排索引;
第二确定模块1030,包括:
第二确定单元1031,用于将目标关键词对应的倒排索引中的各个文档标识所指示的文档,确定为第二目标文档。
可选地,第二索引还包括每个关键词与第二索引范围的对应关系,第二索引范围包括:携带有关键词的各个文档的最小局部编号和最大局部编号;
该装置,还包括:
第一获取模块1050,用于获取目标关键词对应的第二索引范围;
第三确定模块1040,包括:
检测单元1041,用于检测第一索引范围和第二索引范围是否存在交集;
第三获取单元1042,用于当第一索引范围和第二索引范围存在交集时,获取第一索引范围和第二索引范围的交集范围;
第三确定单元1043,用于将交集范围与第二目标文档的交集确定为目标文档。
综上所述,本实施例提供的文档检索装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图11,其示出了本发明一个实施例所提供的索引建立装置的结构方框图。该索引建立装置可以通过软件、硬件或者两者的结合实现成为图1中索引服务器130或索引建立服务器(图中未示出)的全部或者一部分。该索引建立装置,包括:
第一建立模块1110,用于对于每个索引服务器,根据索引服务器中的文档集合建立第一索引;
第二建立模块1120,用于对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;
保存模块1130,用于将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
综上所述,本实施例提供的索引建立装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
请参考图12,其示出了本发明另一实施例所提供的索引建立装置的结构方框图。该索引建立装置可以通过软件、硬件或者两者的结合实现成为图1中索引服务器130或索引建立服务器(图中未示出)的全部或者一部分。该索引建立装置,包括:
第一建立模块1210,用于对于每个索引服务器,根据索引服务器中的文档集合建立第一索引;
第二建立模块1220,用于对于每个索引服务器,根据索引服务器中的文档集合建立第二索引;
保存模块1230,用于将第一索引和第二索引同时保存到索引服务器中,索引服务器用于根据第一索引和第二索引进行关键词检索,关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
可选地,该装置,还包括:
第二获取模块1240,用于通过一致性哈希算法获取文档集合中每个用户的标识对应的哈希值;
排序模块1250,用于根据每个用户的标识的哈希值,对文档集合中的各个文档进行排序;
编号模块1260,用于为排序后的文档分配局部编号,同一个用户标识对应的各个文档的局部编号连续。
可选地,第一建立模块1210,包括:
第一建立单元1211,用于建立每个用户的标识和每个用户对应的文档的局部编号之间的倒排索引,将倒排索引作为第一索引;
或,
第二建立单元1212,用于获取每个用户对应的文档的最小局部编号和最大局部编号;将最小局部编号和最大局部编号确定为第一索引范围;将每个用户的标识和第一索引范围的对应关系,作为第一索引。
可选地,第二建立模块1220,包括:
第三建立单元1221,用于建立各个关键词和各个文档对应的局部编号之间的倒排索引,将倒排索引作为第二索引;
或,
第四建立单元1222,用于获取各个关键词对应的文档的最小局部编号和最大局部编号;将最小局部编号和最大局部编号确定为第二索引范围;将各个关键词和第二索引范围的对应关系,作为第二索引。
综上所述,本实施例提供的索引建立装置,通过将第一索引和第二索引保存在同一索引服务器中;解决了在检索过程中,由于两个索引分别保存在不同的服务器,服务器之间需要通过网络发送大量文档标识导致网络拥塞的问题;达到了在检索过程中,将大量文档标识在索引服务器内部进行传输,避免了通过网络传输导致的网络拥塞,提高检索速度的效果。
本实施例还通过按照用户标识对应的哈希值对文档集合中的文档进行排序,并分配相应的局部编号,使得同一用户对应的文档集中存放,且相较于文档标识,占用更少的存储空间;并且在建立第一索引的过程中,仅记录用户标识与最小局部编号和最大局部编号的对应关系,从而进一步减少建立的索引占用的空间。
需要说明的是:上述实施例提供的文档检索装置在进行文档检索,索引建立装置在建立索引时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将关系链服务器或索引服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文档检索装置与文档检索方法实施例属于同一构思,索引建立装置与索引建立方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图13,其示出了本发明一个实施例提供的服务器的方框图。该服务器可以是图1中的关系链服务器或索引服务器。服务器1300包括中央处理单元(CPU)1301、包括随机存取存储器(RAM)1302和只读存储器(ROM)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。服务器1300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读介质为服务器1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
根据本发明的各种实施例,服务器1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的文档检索方法中关系链服务器或索引服务器侧的指令。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (26)
1.一种关系链查询系统,其特征在于,所述系统包括:关系链服务器和至少一个索引服务器,所述关系链服务器分别与所述索引服务器相连;
所述关系链服务器,用于存储每个用户和每个用户的好友用户之间的对应关系;
每个索引服务器与一个用户标识范围对应,每个索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定;
每个索引服务器,用于根据划分的用户标识区间建立并存储文档集合、第一索引和第二索引;
所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述用户标识范围内的用户;
所述第一索引包括所述文档集合中的每个用户和每个用户发布的文档的对应关系;
所述第二索引包括各个关键词和所述文档集合中的各个文档的对应关系,所述关键词是根据预定规则从所述文档中划分出的分词。
2.根据权利要求1所述的系统,其特征在于,
所述第一索引包括每个用户标识和每个用户标识对应的文档标识之间的倒排索引;
所述用户标识是所述文档集合中的用户的标识,所述文档标识是所述文档集合中的文档的标识。
3.根据权利要求1所述的系统,其特征在于,
所述第一索引包括每个用户标识与第一索引范围的对应关系,所述第一索引范围包括:所述用户标识对应的各个文档在所述文档集合中的最小局部编号和最大局部编号;
所述局部编号是在所述文档集合中根据各个用户标识排序后,对各个文档所分配的编号,同一个所述用户标识对应的各个文档的局部编号连续。
4.根据权利要求1至3任一所述的系统,其特征在于,
所述第二索引包括各个关键词与所述文档标识之间的倒排索引。
5.根据权利要求4所述的系统,其特征在于,
所述第二索引还包括每个关键词与第二索引范围的对应关系,所述第二索引范围包括:携带有所述关键词的各个文档在所述文档集合中的最小局部编号和最大局部编号;
所述局部编号是在所述文档集合中根据各个用户标识排序后,对各个文档所分配的编号,同一个所述用户标识对应的各个文档的局部编号连续。
6.一种文档检索方法,其特征在于,用于如权利要求1至5任一所述的关系链服务器中,所述方法包括:
接收搜索请求,所述搜索请求携带有目标用户的标识和目标关键词;
查找与所述目标用户对应的好友用户的标识;
将所述好友用户的标识和所述目标关键词发送至与所述好友用户对应的所述索引服务器,所述索引服务器用于在所述索引服务器根据划分的用户标识区间建立并存储的文档集合中,根据预存的所述第一索引和所述第二索引,在所述好友用户发布的文档中查找出包含所述目标关键词的文档,所述索引服务器中的所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定。
7.根据权利要求6所述的方法,其特征在于,所述将所述好友用户的标识和所述目标关键词发送至与所述好友用户对应的所述索引服务器,包括:
通过一致性哈希算法获取所述好友用户的标识对应的哈希值;
根据所述哈希值所属的所述用户标识范围,查找与所述哈希值对应的所述索引服务器;
将所述好友用户的标识和所述目标关键词发送至查找出的所述索引服务器。
8.一种文档检索方法,其特征在于,用于如权利要求1至5任一所述的索引服务器中,所述索引服务器,用于根据划分的用户标识区间建立并存储文档集合、第一索引和第二索引,所述索引服务器中的所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定,所述方法包括:
接收所述关系链服务器发送的好友用户的标识和目标关键词;
将所述第一索引中与所述好友用户对应的文档确定为第一目标文档;
将所述第二索引中与所述目标关键词对应的文档确定为第二目标文档;
将所述第一目标文档和所述第二目标文档的交集确定为目标文档。
9.根据权利要求8所述的方法,其特征在于,所述第一索引包括每个用户标识与第一索引范围的对应关系,所述第一索引范围包括:所述用户标识对应的各个文档在所述文档集合中的最小局部编号和最大局部编号,所述局部编号是根据各个用户标识排序后,对各个文档所分配的编号,同一个所述用户标识对应的各个文档的局部编号连续;
所述将所述第一索引中与所述好友用户对应的文档确定为第一目标文档,包括:
获取所述好友用户的标识对应的所述第一索引范围;
将所述第一索引范围内的各个文档标识所指示的文档,确定为所述第一目标文档。
10.根据权利要求9所述的方法,其特征在于,所述第二索引包括各个关键词与所述文档标识之间的倒排索引;
所述将所述第二索引中与所述目标关键词对应的文档确定为第二目标文档,包括:
将所述目标关键词对应的所述倒排索引中的各个文档标识所指示的文档,确定为所述第二目标文档。
11.根据权利要求10所述的方法,其特征在于,所述第二索引还包括每个关键词与第二索引范围的对应关系,所述第二索引范围包括:携带有所述关键词的各个文档的最小局部编号和最大局部编号;
所述方法,还包括:
获取所述目标关键词对应的所述第二索引范围;
所述将所述第一目标文档和所述第二目标文档的交集确定为目标文档,包括:
检测所述第一索引范围和所述第二索引范围是否存在交集;
当所述第一索引范围和所述第二索引范围存在交集时,获取所述第一索引范围和所述第二索引范围的交集范围;
将所述交集范围与所述第二目标文档的交集确定为所述目标文档。
12.一种索引建立方法,其特征在于,用于如权利要求1至5任一所述的关系链查询系统中,所述方法包括:
对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第一索引,所述索引服务器中的所述文档集合根据划分的用户标识区间建立,所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定;
对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第二索引;
将所述第一索引和所述第二索引同时保存到所述索引服务器中,所述索引服务器用于根据所述第一索引和所述第二索引进行关键词检索,所述关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
13.根据权利要求12所述的方法,其特征在于,所述对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第一索引之前,还包括:
通过一致性哈希算法获取所述文档集合中每个用户的标识对应的哈希值;
根据所述每个用户的标识的哈希值,对所述文档集合中的各个文档进行排序;
为排序后的所述文档分配局部编号,同一个所述用户标识对应的各个文档的所述局部编号连续。
14.根据权利要求13所述的方法,其特征在于,所述对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第一索引,包括:
建立每个用户的标识和每个用户对应的文档的所述局部编号之间的倒排索引,将所述倒排索引作为所述第一索引;
或,
获取每个用户对应的文档的最小局部编号和最大局部编号;将所述最小局部编号和所述最大局部编号确定为第一索引范围;将每个用户的标识和所述第一索引范围的对应关系,作为所述第一索引。
15.根据权利要求13所述的方法,其特征在于,所述对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第二索引,包括:
建立各个关键词和各个文档对应的所述局部编号之间的倒排索引,将所述倒排索引作为所述第二索引;
或,
获取各个关键词对应的所述文档的最小局部编号和最大局部编号;将所述最小局部编号和所述最大局部编号确定为第二索引范围;将各个关键词和所述第二索引范围的对应关系,作为所述第二索引。
16.一种文档检索装置,其特征在于,用于如权利要求1至5任一所述的关系链服务器中,所述装置包括:
第一接收模块,用于接收搜索请求,所述搜索请求携带有目标用户的标识和目标关键词;
查找模块,用于查找与所述目标用户对应的好友用户的标识;
发送模块,用于将所述好友用户的标识和所述目标关键词发送至与所述好友用户对应的所述索引服务器,所述索引服务器用于在所述索引服务器根据划分的用户标识区间建立并存储的文档集合中,根据预存的所述第一索引和所述第二索引,在所述好友用户发布的文档中查找出包含所述目标关键词的文档,所述索引服务器中的所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定。
17.根据权利要求16所述的装置,其特征在于,所述发送模块,包括:
第一获取单元,用于通过一致性哈希算法获取所述好友用户的标识对应的哈希值;
查找单元,用于根据所述哈希值所属的所述用户标识范围,查找与所述哈希值对应的所述索引服务器;
发送单元,用于将所述好友用户的标识和所述目标关键词发送至查找出的所述索引服务器。
18.一种文档检索装置,其特征在于,用于如权利要求1至5任一所述的索引服务器中,所述索引服务器,用于根据划分的用户标识区间建立并存储文档集合、第一索引和第二索引,所述索引服务器中的所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定,所述装置包括:
第二接收模块,用于接收所述关系链服务器发送的好友用户的标识和目标关键词;
第一确定模块,用于将所述第一索引中与所述好友用户对应的文档确定为第一目标文档;
第二确定模块,用于将所述第二索引中与所述目标关键词对应的文档确定为第二目标文档;
第三确定模块,用于将所述第一目标文档和所述第二目标文档的交集确定为目标文档。
19.根据权利要求18所述的装置,其特征在于,所述第一索引包括每个用户标识与第一索引范围的对应关系,所述第一索引范围包括:所述用户标识对应的各个文档在所述文档集合中的最小局部编号和最大局部编号,所述局部编号是根据各个用户标识排序后,对各个文档所分配的编号,同一个所述用户标识对应的各个文档的局部编号连续;
所述第一确定模块,包括:
第二获取单元,用于获取所述好友用户的标识对应的所述第一索引范围;
第一确定单元,用于将所述第一索引范围内的各个文档标识所指示的文档,确定为所述第一目标文档。
20.根据权利要求19所述的装置,其特征在于,所述第二索引包括各个关键词与所述文档标识之间的倒排索引;
所述第二确定模块,包括:
第二确定单元,用于将所述目标关键词对应的所述倒排索引中的各个文档标识所指示的文档,确定为所述第二目标文档。
21.根据权利要求20所述的装置,其特征在于,所述第二索引还包括每个关键词与第二索引范围的对应关系,所述第二索引范围包括:携带有所述关键词的各个文档的最小局部编号和最大局部编号;
所述装置,还包括:
第一获取模块,用于获取所述目标关键词对应的所述第二索引范围;
所述第三确定模块,包括:
检测单元,用于检测所述第一索引范围和所述第二索引范围是否存在交集;
第三获取单元,用于当所述第一索引范围和所述第二索引范围存在交集时,获取所述第一索引范围和所述第二索引范围的交集范围;
第三确定单元,用于将所述交集范围与所述第二目标文档的交集确定为所述目标文档。
22.一种索引建立装置,其特征在于,用于如权利要求1至5任一所述的关系链查询系统中,所述装置包括:
第一建立模块,用于对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第一索引,所述索引服务器中的所述文档集合根据划分的用户标识区间建立,所述文档集合包括至少一个用户发布的各个文档,所述至少一个用户是用户标识属于所述索引服务器对应的用户标识范围内的用户,所述索引服务器对应的用户标识范围根据一致性哈希处理后的用户标识的长度与索引服务器的数量确定;
第二建立模块,用于对于每个索引服务器,根据所述索引服务器中的所述文档集合建立所述第二索引;
保存模块,用于将所述第一索引和所述第二索引同时保存到所述索引服务器中,所述索引服务器用于根据所述第一索引和所述第二索引进行关键词检索,所述关键词检索是在目标用户的好友用户所发布的文档中,查找出包含目标关键词的文档。
23.根据权利要求22所述的装置,其特征在于,所述装置,还包括:
第二获取模块,用于通过一致性哈希算法获取所述文档集合中每个用户的标识对应的哈希值;
排序模块,用于根据所述每个用户的标识的哈希值,对所述文档集合中的各个文档进行排序;
编号模块,用于为排序后的所述文档分配局部编号,同一个所述用户标识对应的各个文档的所述局部编号连续。
24.根据权利要求23所述的装置,其特征在于,所述第一建立模块,包括:
第一建立单元,用于建立每个用户的标识和每个用户对应的文档的所述局部编号之间的倒排索引,将所述倒排索引作为所述第一索引;
或,
第二建立单元,用于获取每个用户对应的文档的最小局部编号和最大局部编号;将所述最小局部编号和所述最大局部编号确定为第一索引范围;将每个用户的标识和所述第一索引范围的对应关系,作为所述第一索引。
25.根据权利要求23所述的装置,其特征在于,所述第二建立模块,包括:
第三建立单元,用于建立各个关键词和各个文档对应的所述局部编号之间的倒排索引,将所述倒排索引作为所述第二索引;
或,
第四建立单元,用于获取各个关键词对应的所述文档的最小局部编号和最大局部编号;将所述最小局部编号和所述最大局部编号确定为第二索引范围;将各个关键词和所述第二索引范围的对应关系,作为所述第二索引。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行如权利要求6-15任一所述的关系链服务器或索引服务器侧的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510180500.2A CN106156166B (zh) | 2015-04-16 | 2015-04-16 | 关系链查询系统、文档检索方法、索引建立方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510180500.2A CN106156166B (zh) | 2015-04-16 | 2015-04-16 | 关系链查询系统、文档检索方法、索引建立方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106156166A CN106156166A (zh) | 2016-11-23 |
CN106156166B true CN106156166B (zh) | 2020-11-10 |
Family
ID=58057428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510180500.2A Active CN106156166B (zh) | 2015-04-16 | 2015-04-16 | 关系链查询系统、文档检索方法、索引建立方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156166B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299354A (zh) * | 2018-11-15 | 2019-02-01 | 天津字节跳动科技有限公司 | 在线文档的搜索方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60044220D1 (de) * | 1999-01-26 | 2010-06-02 | Xerox Corp | Multimodaler Informationzugriff |
CN100462979C (zh) * | 2007-06-26 | 2009-02-18 | 腾讯科技(深圳)有限公司 | 分布式索引文件的检索方法、检索系统及检索服务器 |
CN101510209B (zh) * | 2009-03-30 | 2012-05-30 | 北京金山软件有限公司 | 实现实时检索的方法、系统和服务器 |
CN102479207B (zh) * | 2010-11-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种信息搜索的方法、系统及信息搜索设备 |
CN102571980A (zh) * | 2012-01-22 | 2012-07-11 | 何劲 | 一种新型的微博系统 |
CN102915506A (zh) * | 2012-10-29 | 2013-02-06 | 江苏乐买到网络科技有限公司 | 一种推荐团购信息的系统 |
CN103020281B (zh) * | 2012-12-27 | 2016-01-27 | 中国科学院计算机网络信息中心 | 一种基于空间数据数值索引的数据存储与检索方法 |
CN103617267B (zh) * | 2013-12-03 | 2017-05-10 | 北京奇虎科技有限公司 | 社交化扩展搜索方法及装置、系统 |
-
2015
- 2015-04-16 CN CN201510180500.2A patent/CN106156166B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106156166A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614402B (zh) | 多维数据查询方法和装置 | |
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
US20130166543A1 (en) | Client-based search over local and remote data sources for intent analysis, ranking, and relevance | |
CN107451208B (zh) | 一种数据搜索方法与装置 | |
CN105701096A (zh) | 索引生成方法、数据查询方法、装置及系统 | |
CN109766707B (zh) | 基于区块链的数据处理方法、装置、设备和介质 | |
CN110955704A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
US10496645B1 (en) | System and method for analysis of a database proxy | |
CN113687964B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
US11562004B2 (en) | Classifying and filtering platform data via k-means clustering | |
CN104636368A (zh) | 数据检索方法、装置及服务器 | |
CN104750718A (zh) | 一种数据信息的搜索方法和设备 | |
CN111694793A (zh) | 一种日志存储方法、装置及日志查询方法、装置 | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
US8825698B1 (en) | Showing prominent users for information retrieval requests | |
CN109451069B (zh) | 基于分布式存储的网络数据文件库存储及查询方法 | |
CN109947759A (zh) | 一种数据索引建立方法、索引检索方法及装置 | |
US10853892B2 (en) | Social networking relationships processing method, system, and storage medium | |
CN107844536B (zh) | 应用程序选择的方法、装置和系统 | |
CN106156166B (zh) | 关系链查询系统、文档检索方法、索引建立方法及装置 | |
CN108345699B (zh) | 获取多媒体数据的方法、装置及存储介质 | |
CN112260935B (zh) | 消息处理方法、装置、电子设备及可读存储介质 | |
CN115391581A (zh) | 索引创建、图像存储、图像检索方法、装置及电子设备 | |
CN114547384A (zh) | 资源对象处理方法、装置及计算机设备 | |
CN111917855A (zh) | 内容推送方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |