CN102722553B - 基于用户日志分析的分布式倒排索引组织方法 - Google Patents

基于用户日志分析的分布式倒排索引组织方法 Download PDF

Info

Publication number
CN102722553B
CN102722553B CN201210169721.6A CN201210169721A CN102722553B CN 102722553 B CN102722553 B CN 102722553B CN 201210169721 A CN201210169721 A CN 201210169721A CN 102722553 B CN102722553 B CN 102722553B
Authority
CN
China
Prior art keywords
node
cluster
high frequency
frequency words
index
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.)
Expired - Fee Related
Application number
CN201210169721.6A
Other languages
English (en)
Other versions
CN102722553A (zh
Inventor
陈岭
李卓豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201210169721.6A priority Critical patent/CN102722553B/zh
Publication of CN102722553A publication Critical patent/CN102722553A/zh
Application granted granted Critical
Publication of CN102722553B publication Critical patent/CN102722553B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于用户日志分析的分布式倒排索引组织方法,其实施步骤如下:1)分析用户查询日志并提取出高频词和非高频词,建立高频词的相关性矩阵,并根据高频词之间的相关性建立高频词关系图;2)计算每个高频词的负载,根据高频词关系图和高频词的负载对高频词进行聚类;3)将各个聚类分配到节点之上并建立高频词索引,将非高频词哈希到各个节点之上,并建立非高频词索引;4)根据所述高频词索引和非高频词索引建立全局的索引表,并根据该索引表进行查询路由。本发明具有查询开销小、查询效率高、查询性能好、能实现整个系统吞吐量和每次查询响应速度间的平衡、多词查询涉及的节点数少的优点。

Description

基于用户日志分析的分布式倒排索引组织方法
技术领域
本发明涉及计算机信息检索技术领域,具体涉及一种基于用户日志分析的分布式倒排索引组织方法。
背景技术
随着互联网技术的不断发展,当今社会每天都会产生大量的信息,这些信息往往会以网页、图片、视频、音频等非结构化数据的形式展现。面对如此浩如烟海的数据量,人们要想从中获得符合自己需求的信息,如大海捞针般困难。因此,在这个海量信息的时代,要想快速、效地获得有用信息,必须借助各式各样的信息检索系统(Information Retrieval System,IRS)。IRS的主要目的是为人们提供有效的信息服务,是根据特定信息需求建立起来的,实现了信息搜索、加工、存储和检索等功能的程序化系统。从广义上来讲,任何具有了信息存储和检索功能的系统,都可以称之为IRS系统。
IRS系统的种类繁多,如数字图书馆、搜索引擎等,但此类系统都有针对信息数据的索引。随着信息数据量的不断增加,索引也必然会不断膨胀,最终导致存储和检索效率变得十分低下。为了解决这个问题,一般采用分布式索引,将原来存储在单台机器上的庞大的索引切割成大小合适的索引碎片,并将这些索引碎片分布到不同的机器上,形成索引集群,从而把原先对巨大单一索引的访问转换为对索引集群的查询,索引集群则通过合适的索引分割方式、查询路由策略以及最终的结果合并实现快速而有效的查询。由此可以看出,分布式索引系统已经成为IRS系统乃至信息领域里一个至关重要的组成部分,要实现海量数据的有效管理,就必须先实现高性能的分布式索引系统。
在倒排索引的分布式处理过程中,最重要的问题之一就是索引的分割切片。目前最主要有三种方式:“全局分割”、“局部分割”和“混合分割”。
“全局分割”也叫基于“文档”的分割,每块索引碎片所包含的信息都具有全局意义。基于“文档”的划分策略虽然使整个索引结构易于维护,节点之间的负载更加均衡、但是每次查询所有节点都要参与,系统资源浪费严重。
而在“局部分割”中,又叫基于“词”的分割,每块索引碎片所包含信息只具有局部的意义,即只针对某个子数据集的索引。基于“词”的划分策略能有效减少每次参与查询的节点数,增大整个系统的吞吐,但由于“词”之间被查询频率存在很大差别,容易造成节点间的负载不均。
这两种分割方式在不同的应用坏境和查询条件下各有优劣,出于各取其优的考虑,出现了“混合分割”的分片组织方式,“混合分割”的基本思想是部分“全局”部分“局部”,而不同方法的区别在于如何划分“全局”与“局部”,以及这两部分如何交互。现有“混合分割”方法一般设计简单,没有考虑“词”之间被查询频率的差别,总体效果并不理想。
在实现分布式索引系统的基础上,需要利用查询路由来从分布式索引系统中获取查询结果。的查询路由是建立在“索引分割”基础之上的查询节点选择,其一方面利用索引分片信息选择合适的索引集群节点进行查询,另一方面在保证结果集准确率的前提下,尽可能减少参与查询的节点,同时为集群的负载均衡、索引分片副本调整等方法提供依据。
发明内容
本发明要解决的技术问题是提供一种查询开销小、查询效率高、查询性能好、能实现整个系统吞吐量和每次查询响应速度间的平衡、多词查询涉及的节点数少的基于用户日志分析的分布式倒排索引组织方法。
为解决上述技术问题,本发明采用的技术方案为:
一种基于用户日志分析的分布式倒排索引组织方法,其实施步骤如下:
1)分析用户查询日志并提取出高频词和非高频词,建立高频词的相关性矩阵,并根据高频词之间的相关性建立高频词关系图;
2)计算每个高频词的负载,根据高频词关系图和高频词的负载对高频词进行聚类;
3)将各个聚类分配到节点之上并建立高频词索引,将非高频词哈希到各个节点之上,并建立非高频词索引;
4)根据所述高频词索引和非高频词索引建立全局的索引表,并根据该索引表进行查询路由。
作为本发明上述技术方案的进一步改进:
所述步骤1)的详细步骤为:
1.1)解析用户查询日志,将用户查询日志进行分词得到查询词典,统计每个词的出现频率并将查询词典按照出现频率降序或者升序排列,从查询词典的高出现频率端截取指定数量的词作为高频词,剩余的词则为非高频词;
1.2)将截取的高频词建立高频词典,将高频词典中的高频词从1到N统一编号建立N×N的高频词的相关性矩阵;
1.3)将所述高频词的相关性矩阵转换为无向图得到高频词关系图。
所述步骤2)的详细步骤包括:
2.1)计算每个高频词的负载,将节点按照负载降序排列得到节点集合,计算节点集合中任意两个节点之间的节点距离;
2.2)定义每个聚类的负载上限、聚类个数以及聚类中心之间的最短距离和中心节点集合,从所述节点集合中取出一个节点作为当前节点,然后跳转执行步骤2.3);
2.3)将当前节点与中心节点集合中的中心节点进行比较,如果中心节点集合中找到某个节点与当前节点之间的节点距离小于所述聚类中心之间的最短距离,则将所述中心节点集合中找到的节点和当前节点合并作为中心节点集合中的一个新的中心节点,否则将当前节点作为中心节点集合中的一个新的中心节点;最终执行下一步;
2.4)判断中心节点集合的大小是否达到聚类个数,如果仍未达到聚类个数则从所述节点集合中取出下一个节点作为当前节点并返回继续执行步骤2.3);如果已经达到聚类个数则执行步骤2.5);
2.5)根据中心节点集合中的中心节点生成聚类得到聚类集合,计算中心节点集合中每一个中心节点到其他非中心节点的最短距离,并降序排列得到最短距离集合;
2.6)针对聚类集合的每一个聚类,查找所述聚类对应最短距离集合中的下一个节点作为目标节点;计算所述目标节点的负载并判断负载是否超过所述负载上限,如果超过负载上限则忽略该目标节点;判断包含所述目标节点的聚类数是否超过聚类个数,如果超过就忽略所述目标节点;判断所述目标节点是否已经加入其他聚类且所述目标节点在最短距离集合中的上一个节点也属于所述其他聚类中,如果符合条件则在所述目标节点和所述目标节点在最短距离集合中的上一个节点中选择更接近当前聚类和其他聚类中点的节点作为边境节点,所述边境节点同时属于当前聚类和其他聚类两个聚类;如果不符合条件,则直接将目标节点直接加入当前聚类;最终将所有节点归类后完成聚类并返回聚类结果。
所述步骤3)的详细步骤包括:
3.1)计算每个聚类的负载,将聚类按照负载降序排列得到聚类集合;
3.2)建立系统性能的目标函数,从所述聚类集合中选择一个聚类作为当前聚类;
3.3)往所述当前聚类中尝试添加节点并计算所述目标函数值,然后将当前聚类加入目标函数值最小的节点上并建立索引,然后执行步骤3.4);
3.4)判断聚类集合中是否还有聚类未处理,如果仍有聚类未处理则取出下一个未处理的聚类作为当前聚类并返回执行步骤3.3);如果所有聚类处理完成则高频词索引建立完毕;
3.5)将非高频词哈希到各个节点之上建立非高频词索引。
所述步骤3.2)中建立的目标函数的函数表达式如式(1)所示:
Ω λ ( S ) = a . W ‾ λ ( S ) P + b . L ^ λ ( S ) C L + ( 1 - a - b ) L ‾ λ ( S ) L ^ λ ( S ) - - - ( 1 )
式(1)中,Ωλ(S)为目标函数,a为响应速度权重参数,b为吞吐量权重参数,P为集群节点数,CL是集群的负载总和,
Figure BDA00001677108400042
表示查询流S处理一个查询平均涉及的节点数,
Figure BDA00001677108400043
集群中最高的节点负载、
Figure BDA00001677108400044
集群中的节点平均负载。
所述步骤5)中根据索引表进行查询路由的详细步骤如下:
5.1)初始化查询节点链表;判断用户查询中是否存在高频词,如果存在高频词则跳转执行步骤5.2),否则将用户查询发给所有节点进行查询并退出;
5.2)将剩下的高频词组成子查询并对高频词索引进行查询,如果有符合要求的聚类结果,选出得分最高的聚类并根据查找到对应的节点添加至查询节点链表;
5.3)判断查找到的节点是否包含用户查询中剩余的全部高频词,如果不能包含用户查询中剩余的全部高频词则继续返回执行步骤5.2),否则跳转执行步骤5.4);
5.4)判断用户查询中是否存在非关键词,如果不存在非关键词则将通过所述查询节点链表中的节点进行查询;如果存在非关键词则将从其他节点上得到非高频词的倒排链表,并将所述倒排链表通过所述查询节点链表中的节点进行查询。
本发明具有下述优点:
1、本发明基于用户查询日志进行节点索引以及查询路由,能使索引的组织分片更好的适应用户的查询需求,避免不必要的计算开销。
2、本发明中的聚类仅针对查询日志中的高频词,可大幅减少聚类的时间消耗,聚类的负载大小可控,聚类之间可以有交集,这些交集起到了副本的作用,可进一步提高查询的性能。
3、本发明聚类分配的目标函数考虑了影响索引性能的各个因素,能实现整个系统吞吐量和每次查询响应速度间的平衡,在保证集群整体负载均衡的前提下,减少了多词查询涉及的节点数。
附图说明
图1为本发明实施例的总体系统架构示意图。
图2为本发明实施例中分析用户查询日志的流程示意图。
图3为本发明实施例中聚类算法的详细流程示意图。
图4为本发明实施例中聚类结果示意图。
图5为本发明实施例中聚类分配的流程示意图。
图6为本发明实施例中查询路由的流程示意图。
具体实施方式
如图1所示,本实施例的总体系统架构由索引建立以及查询路由两部分组成,查询日志处理模块:负责分析查询日志、提出高频词、并根据既定的参数进行聚类,然后依据目标函数将聚类分配到索引集群中的各个节点,由各个节点建立索引;查询处理模块:负责接收查询前端请求,更新查询日志,并根据全局索引以及各节点当前的负载情况挑选合适的节点进行查询。本实施例基于用户日志分析的分布式倒排索引组织方法的实施步骤如下:
1)分析用户查询日志并提取出高频词和非高频词,建立高频词的相关性矩阵,并根据高频词之间的相关性建立高频词关系图;
2)计算每个高频词的负载,根据高频词关系图和高频词的负载对高频词进行聚类;
3)将各个聚类分配到节点之上并建立高频词索引,将非高频词哈希到各个节点之上,并建立非高频词索引;
4)根据高频词索引和非高频词索引建立全局的索引表,并根据该索引表进行查询路由。
步骤1)的详细步骤为:
1.1)解析用户查询日志,将用户查询日志进行分词得到查询词典,统计每个词的出现频率并将查询词典按照出现频率降序或者升序排列,从查询词典的高出现频率端截取指定数量的词作为高频词,剩余的词则为非高频词;
1.2)将截取的高频词建立高频词典,将高频词典中的高频词从1到N统一编号建立N×N的高频词的相关性矩阵;
1.3)将高频词的相关性矩阵转换为无向图得到高频词关系图。
如图2所示,本实施例中对用户查询日志的分析处理步骤如下:首先解析“查询日志”,将日志中的“查询”进行分词,得到查询词典TS并统计每个词的频率frq,对TS中的词按频率降序排列,取前M%作为高频词典Tf,并统一编号1到N,得到一个N×N的矩阵C。矩阵元素Cij表示编号为i与j的“词”一起出现的频率,C中对角线元素的值为每个“词”单独出现的频率,即最后将将矩阵C转换成TS无向关系图(V,E),其中Vi表示编号为i的词,Eij值为Cij,并开始聚类。
步骤2)的详细步骤包括:
2.1)计算每个高频词的负载,将节点按照负载降序排列得到节点集合,计算节点集合中任意两个节点之间的节点距离;
2.2)定义每个聚类的负载上限、聚类个数以及聚类中心之间的最短距离和中心节点集合,从节点集合中取出一个节点作为当前节点,然后跳转执行步骤2.3);
2.3)将当前节点与中心节点集合中的中心节点进行比较,如果中心节点集合中找到某个节点与当前节点之间的节点距离小于聚类中心之间的最短距离,则将中心节点集合中找到的节点和当前节点合并作为中心节点集合中的一个新的中心节点,否则将当前节点作为中心节点集合中的一个新的中心节点;最终执行下一步;
2.4)判断中心节点集合的大小是否达到聚类个数,如果仍未达到聚类个数则从节点集合中取出下一个节点作为当前节点并返回继续执行步骤2.3);如果已经达到聚类个数则执行步骤2.5);
2.5)根据中心节点集合中的中心节点生成聚类得到聚类集合,计算中心节点集合中每一个中心节点到其他非中心节点的最短距离,并降序排列得到最短距离集合;
2.6)针对聚类集合的每一个聚类,查找聚类对应最短距离集合中的下一个节点作为目标节点;计算目标节点的负载并判断负载是否超过负载上限,如果超过负载上限则忽略该目标节点;判断包含目标节点的聚类数是否超过聚类个数,如果超过就忽略目标节点;判断目标节点是否已经加入其他聚类且目标节点在最短距离集合中的上一个节点也属于其他聚类中,如果符合条件则在目标节点和目标节点在最短距离集合中的上一个节点中选择更接近当前聚类和其他聚类中点的节点作为边境节点,边境节点同时属于当前聚类和其他聚类两个聚类;如果不符合条件,则直接将目标节点直接加入当前聚类;最终将所有节点归类后完成聚类并返回聚类结果。
步骤2.1)计算节点距离的距离函数可以根据需要定义,但是距离函数需要满足三角不等式,本实施例中的距离函数由频率和步长两部分组成,由于距离函数为本领域的常规技术,因此在此不再赘述。
如图3所示,本实施例中步骤2)中进行聚类算法的伪代码描述如下:
Figure BDA00001677108400081
Figure BDA00001677108400091
Figure BDA00001677108400101
上述伪代码的步骤描述如下:
A1)统计每个节点的负载将节点按照负载降序排列,给出距离函数sum,sum(i,j)是Vi和Vj间的距离(距离函数可自定义,距离函数必须满足三角不等式);
A2)挑选聚类的中心点,在挑选之前,先定义每个聚类的负载上限loadup、聚类个数m、以及“中心”之间的最短距离Rc,中心点集合为Center。依次从第1步中得出的节点集合中取出节点vi
A3)判断是否存在某个“中心”centeri和节点vi的距离是否小于Rc即sum(centeri,vi)≤Rc
A4)如果存在这样的“中心”centeri那么将vi与centeri合并为新的“中心”;
A5)如果不存在这样的“中心”,那么vi作为一个新的“中心”加入到Center中;
A6)判断Center大小是否达到m,如果未达到m,继续执行步骤A2);
A7)如果达到m,进行聚类,首先根据“中心”生成聚类,聚类集合为Cl,并计算每个“中心”到其他节点的最短距离,结果按升序保存在dist中;
A8)对于每个聚类CLi,取出其dist中的下一个点distnext,计算CLi+distnext的负载CLload
A9)判断CLload是否超过loadup,如果CLload超过loadup,忽略该节点;
A10)判断包含distnext的聚类数是否超过了mnode,如果超过就忽略该节点;
A11)判断distnext是否是已经加入其它聚类CLo且distnext在CLi中的前项节点distpre也属于CLo若是,执行下一步,否则执行13;
A12)选择distnext和distpre中个更加接近CLi和CLo中点的节点作为边境节点,边境节点同时属于两个聚类;
A13)其它情况distnext直接加入CLi
A14)将所有节点归类后,聚类完成,返回聚类结果。
上述步骤A1)~A14)中,loadup,m,Rc是聚类参数。loadup为聚类负载上限、m为节点所属聚类数上限、以及“中心”之间的最短距离Rc。图4为聚类结果示例,其每个聚类的“中心”为查询负载最高的“词”,聚类由“中心”向外辐射,聚类和聚类之间存在“边界词”,这些“边界词”将整个“词图”划分成独立的连通分量,这些连通分量是对“高频词”的划分,是将“词”在索引集群节点中进行分配的基础,最终得到的聚类结果示例如图4所示,其中黑色圆圈为聚类中心节点,白色圆圈为普通聚类节点,斜线填充的圆圈为边境节点。
如图5所示,步骤3)的详细步骤包括:
3.1)计算每个聚类的负载,将聚类按照负载降序排列得到聚类集合;
3.2)建立系统性能的目标函数,从聚类集合CL中选择一个聚类作为当前聚类CLi;
3.3)将CLi加入每个节点并计算目标函数值,然后将当前聚类加入目标函数值最小的节点上并建立索引,然后执行步骤3.4);
3.4)判断聚类集合中是否还有聚类未处理,如果仍有聚类未处理则取出下一个未处理的聚类作为当前聚类并返回执行步骤3.3);如果所有聚类处理完成则高频词索引建立完毕;
3.5)将非高频词哈希到各个节点之上建立非高频词索引,将每个聚类都处理完成后,分配完成。
本实施例中,步骤3)的聚类分配算法伪代码描述如下:
Figure BDA00001677108400121
本实施例中,步骤3.2)中建立的目标函数的函数表达式如式(1)所示:
Ω λ ( S ) = a . W ‾ λ ( S ) P + b . L ^ λ ( S ) C L + ( 1 - a - b ) L ‾ λ ( S ) L ^ λ ( S ) - - - ( 1 )
式(1)中,Ωλ(S)为目标函数,a为响应速度权重参数,b为吞吐量权重参数,P为集群节点数,CL是集群的负载总和,表示查询流S处理一个查询平均涉及的节点数,
Figure BDA00001677108400124
集群中最高的节点负载、
Figure BDA00001677108400125
集群中的节点平均负载。
本实施例中,节点的性能模型的函数表达式如下:
W ‾ λ ( Q ) = Σ Q ∈ S Wλ ( Q ) | S | - - - ( 2 )
T λ j ( Q ) = T overhead + Σ t ∈ Q λ j ( T disk ( | l t | ) + T compute ( | l t | ) ) - - - ( 3 )
Wλ(Q)表示处理一个查询涉及到的节点数,
Figure BDA00001677108400128
表示查询流S处理一个查询平均涉及的节点数。Tdisk(|lt|)表示节点从磁盘上读取“倒排链表”的时间,Tcompute(|lt|)表示进行结果计算所消耗的时间,处理单个查询Q在节点j上的消耗为
Figure BDA00001677108400129
为一段查询流S给节点带来的负载,
Figure BDA000016771084001210
集群中最高的节点负载,则是平均负载。公式(4)中的参数a,b,0≤a,0≤b,0≤(a+b)≤1表示评估系统性能的侧重点,分别是响应速度和吞吐量的权重参数,可根据实际情况进行调整。P为集群节点数,CL是集群的负载总和,Ca是归一化常数。
如图6所示,步骤5)中根据索引表进行查询路由的详细步骤如下:
5.1)初始化查询节点链表;判断用户查询中是否存在高频词,如果存在高频词则跳转执行步骤5.2),否则将用户查询发给所有节点进行查询并退出;
5.2)将剩下的高频词组成子查询并对高频词索引进行查询,如果有符合要求的聚类结果,选出得分最高的聚类并根据查找到对应的节点添加至查询节点链表;
5.3)判断查找到的节点是否包含用户查询中剩余的全部高频词,如果不能包含用户查询中剩余的全部高频词则继续返回执行步骤5.2),否则跳转执行步骤5.4);
5.4)判断用户查询中是否存在非关键词,如果不存在非关键词则将通过查询节点链表中的节点进行查询;如果存在非关键词则将从其他节点上得到非高频词的倒排链表,并将倒排链表通过查询节点链表中的节点进行查询。
对于索引中的“全局”部分Tf,是在聚类基础之上进行划分的。可将每个聚类看成一个文件,分配统一的id,聚类id集合为CID,建立倒排索引表ICL。聚类分配后,节点持有各自的高频词集合
Figure BDA00001677108400132
,把每个
Figure BDA00001677108400133
看成一个文件,分别建立倒排索引表IT,同时记录每个节点上包含聚类的正向信息。查询到来时,路由策略如下:B1)将query进行分词,跟据Tf找出分词中的高频词TQf和非高频词Tnf,初始化查询节点链表listsearch。B2)判断query是否存在高频词。B3)如query不存在高频词,那么将query分发给所有的节点。B4)如果存在,则将TQf组成一个新的查询sub-query,对ICL进行查询,如果有符合要求的聚类结果,选出得分最高的聚类并根据其id找到对应的索引节点nodef,加入listsearch。B5)判断nodef,是否包含所有的TQf。B6)如果不完全包含,则将剩下的TQf继续进行此步骤。B7)判断query是否都是由高频词组成。B8)如果query都是由高频词组成的,那么在listsearch中的节点上进行查询。B9)如果query存在非高频词,那么从其他节点上取出Tnf的“倒排链表”,交给listsearch中的节点进行查询。
以上所述仅为本发明的优选实施方式,本发明的保护范围并不仅限于上述实施方式,凡是属于本发明原理的技术方案均属于本发明的保护范围。对于本领域的技术人员而言,在不脱离本发明的原理的前提下进行的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (3)

1.一种基于用户日志分析的分布式倒排索引组织方法,其特征在于其实施步骤如下:
1)分析用户查询日志并提取出高频词和非高频词,建立高频词的相关性矩阵,并根据高频词之间的相关性建立高频词关系图:
1.1)解析用户查询日志,将用户查询日志进行分词得到查询词典,统计每个词的出现频率并将查询词典按照出现频率降序或者升序排列,从查询词典的高出现频率端截取指定数量的词作为高频词,剩余的词则为非高频词;
1.2)将截取的高频词建立高频词典,将高频词典中的高频词从1到N统一编号建立N×N的高频词的相关性矩阵;
1.3)将所述高频词的相关性矩阵转换为无向图得到高频词关系图;2)计算每个高频词的负载,根据高频词关系图和高频词的负载对高频词进行聚类:
2.1)计算每个高频词的负载,将节点按照负载降序排列得到节点集合,计算节点集合中任意两个节点之间的节点距离;
2.2)定义每个聚类的负载上限、聚类个数以及聚类中心之间的最短距离和中心节点集合,从所述节点集合中取出一个节点作为当前节点,然后跳转执行步骤2.3);
2.3)将当前节点与中心节点集合中的中心节点进行比较,如果中心节点集合中找到某个节点与当前节点之间的节点距离小于所述聚类中心之间的最短距离,则将所述中心节点集合中找到的节点和当前节点合并作为中心节点集合中的一个新的中心节点,否则将当前节点作为中心节点集合中的一个新的中心节点;最终执行下一步;
2.4)判断中心节点集合的大小是否达到聚类个数,如果仍未达到聚类个数则从所述节点集合中取出下一个节点作为当前节点并返回继续执行步骤2.3);如果已经达到聚类个数则执行步骤2.5);
2.5)根据中心节点集合中的中心节点生成聚类得到聚类集合,计算中心节点集合中每一个中心节点到其他非中心节点的最短距离,并降序排列得到最短距离集合;
2.6)针对聚类集合的每一个聚类,查找所述聚类对应最短距离集合中的下一个节点作为目标节点;计算所述目标节点的负载并判断负载是否超过所述负载上限,如果超过负载上限则忽略该目标节点;判断包含所述目标节点的聚类数是否超过聚类个数,如果超过就忽略所述目标节点;判断所述目标节点是否已经加入其他聚类且所述目标节点在最短距离集合中的上一个节点也属于所述其他聚类中,如果符合条件则在所述目标节点和所述目标节点在最短距离集合中的上一个节点中选择更接近当前聚类和其他聚类中点的节点作为边境节点,所述边境节点同时属于当前聚类和其他聚类两个聚类;如果不符合条件,则直接将目标节点直接加入当前聚类;最终将所有节点归类后完成聚类并返回聚类结果;
3)将各个聚类分配到节点之上并建立高频词索引,将非高频词哈希到各个节点之上,并建立非高频词索引:
3.1)计算每个聚类的负载,将聚类按照负载降序排列得到聚类集合;
3.2)建立系统性能目标函数,从所述聚类集合中选择一个聚类作为当前聚类;
3.3)往所述当前聚类中尝试添加节点并计算所述目标函数值,然后将当前聚类加入目标函数值最小的节点上并建立索引,然后执行步骤3.4);
3.4)判断聚类集合中是否还有聚类未处理,如果仍有聚类未处理则取出下一个未处理的聚类作为当前聚类并返回执行步骤3.3);如果所有聚类处理完成则高频词索引建立完毕;
3.5)将非高频词哈希到各个节点之上建立非高频词索引;4)根据所述高频词索引和非高频词索引建立全局的索引表,并根据该索引表进行查询路由。
2.根据权利要求1所述的基于用户日志分析的分布式倒排索引组织方法,其特征在于,所述步骤3.2)中建立的目标函数的函数表达式如式(1)所示:
Ω λ ( S ) = a . W ‾ λ ( S ) P + b . L ^ λ ( S ) C L + ( 1 - a - b ) L ‾ λ ( S ) L ^ λ ( S ) - - - ( 1 )
式(1)中,Ωλ(S)为目标函数,a为响应速度权重参数,b为吞吐量权重参数,P为集群节点数,CL是集群的负载总和,表示查询流S处理一个查询平均涉及的节点数,
Figure FDA0000401396090000032
集群中最高的节点负载、
Figure FDA0000401396090000033
集群中的节点平均负载。
3.根据权利要求1或2所述的基于用户日志分析的分布式倒排索引组织方法,其特征在于,所述步骤4)中根据索引表进行查询路由的详细步骤如下:
4.1)初始化查询节点链表;判断用户查询中是否存在高频词,如果存在高频词则跳转执行步骤4.2),否则将用户查询发给所有节点进行查询并退出;
4.2)将剩下的高频词组成子查询并对高频词索引进行查询,如果有符合要求的聚类结果,选出得分最高的聚类并根据查找到对应的节点添加至查询节点链表;
4.3)判断查找到的节点是否包含用户查询中剩余的全部高频词,如果不能包含用户查询中剩余的全部高频词则继续返回执行步骤4.2),否则跳转执行步骤4.4);
4.4)判断用户查询中是否存在非关键词,如果不存在非关键词则将通过所述查询节点链表中的节点进行查询;如果存在非关键词则将从其他节点上得到非高频词的倒排链表,并将所述倒排链表通过所述查询节点链表中的节点进行查询。
CN201210169721.6A 2012-05-24 2012-05-24 基于用户日志分析的分布式倒排索引组织方法 Expired - Fee Related CN102722553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210169721.6A CN102722553B (zh) 2012-05-24 2012-05-24 基于用户日志分析的分布式倒排索引组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210169721.6A CN102722553B (zh) 2012-05-24 2012-05-24 基于用户日志分析的分布式倒排索引组织方法

Publications (2)

Publication Number Publication Date
CN102722553A CN102722553A (zh) 2012-10-10
CN102722553B true CN102722553B (zh) 2014-04-02

Family

ID=46948314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210169721.6A Expired - Fee Related CN102722553B (zh) 2012-05-24 2012-05-24 基于用户日志分析的分布式倒排索引组织方法

Country Status (1)

Country Link
CN (1) CN102722553B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810213B (zh) * 2012-11-14 2017-09-12 腾讯科技(深圳)有限公司 一种搜索方法和系统
CN103853772B (zh) * 2012-12-04 2017-02-08 北京拓尔思信息技术股份有限公司 一种高效倒排索引组织方法
EP2953298B1 (en) * 2013-01-30 2018-03-21 Nippon Telegraph and Telephone Corporation Log analysis device, information processing method and program
CN103744934A (zh) * 2013-12-30 2014-04-23 南京大学 一种基于位置敏感哈希的分布式索引方法
CN105912696A (zh) * 2016-04-25 2016-08-31 中国互联网络信息中心 一种基于对数归并的dns索引创建方法及查询方法
CN106055609B (zh) * 2016-05-25 2019-08-06 北京小米移动软件有限公司 nginx日志监控方法、装置、消息分布系统及信息处理的装置
CN114385350A (zh) 2016-11-30 2022-04-22 华为技术有限公司 一种图数据处理的方法、装置及系统
CN107122437B (zh) * 2017-04-19 2020-08-04 高新兴科技集团股份有限公司 一种支持多条件检索和实时分析的大数据处理方法
CN109684279B (zh) * 2017-10-18 2020-12-08 中移(苏州)软件技术有限公司 一种数据处理方法及系统
CN107992565B (zh) * 2017-11-29 2020-11-03 北京锐安科技有限公司 一种优化搜索引擎的方法及系统
CN108920687B (zh) * 2018-07-12 2021-08-31 重庆邮电大学 一种基于Lucene索引段的合并优化方法
CN109254903A (zh) * 2018-08-03 2019-01-22 挖财网络技术有限公司 一种智能化的日志分析方法及装置
CN109165144B (zh) * 2018-09-06 2023-06-13 南京聚铭网络科技有限公司 一种基于变长记录的安全日志压缩存储和检索方法
CN110069592A (zh) * 2019-04-24 2019-07-30 上海交通大学 应用于电子地图的空间关键字查询的搜索方法
CN110288004B (zh) * 2019-05-30 2021-04-20 武汉大学 一种基于日志语义挖掘的系统故障诊断方法及装置
CN110399375B (zh) * 2019-07-24 2020-06-26 南京云白信息科技有限公司 一种数据表索引创建方法及装置
CN113139113A (zh) * 2021-04-29 2021-07-20 北京沃东天骏信息技术有限公司 搜索请求的处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836076B2 (en) * 2004-08-20 2010-11-16 Hewlett-Packard Development Company, L.P. Distributing content indices
CN101727454A (zh) * 2008-10-30 2010-06-09 日电(中国)有限公司 用于对象自动分类的方法和系统

Also Published As

Publication number Publication date
CN102722553A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102722553B (zh) 基于用户日志分析的分布式倒排索引组织方法
Okcan et al. Processing theta-joins using mapreduce
CN106095951B (zh) 基于负载均衡和查询日志的数据空间多维索引方法
CN110222029A (zh) 一种大数据多维分析计算效率提升方法及系统
CN102314491B (zh) 多核环境下基于海量日志的类似行为模式用户识别方法
CN112015741A (zh) 一种海量数据的分库分表存储方法与装置
AU2018354550A1 (en) Systems and methods for intelligently grouping financial product users into cohesive cohorts
CN114691356A (zh) 数据并行处理方法、装置、计算机设备及可读存储介质
CN103902614B (zh) 一种数据处理方法、设备和系统
Xu et al. Efficient similarity join based on Earth mover’s Distance using Mapreduce
CN104794237B (zh) 网页信息处理方法及装置
CA2418093A1 (en) Data compiling method
CN108228654A (zh) 一种大数据分布式存储方法和系统
Doulkeridis et al. Parallel and distributed processing of spatial preference queries using keywords
RU2755568C1 (ru) Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных
CN108733781A (zh) 基于内存计算的集群时态数据索引方法
CN108256083A (zh) 基于深度学习的内容推荐方法
CN108256086A (zh) 数据特征统计分析方法
Yu et al. Distributed top-k keyword search over very large databases with MapReduce
Wu et al. Beyond greedy search: pruned exhaustive search for diversified result ranking
CN111813542A (zh) 一种并行处理大规模图分析任务的负载均衡方法及其装置
Zaman et al. Selecting key person of social network using skyline query in MapReduce framework
CN108932258A (zh) 数据索引处理方法及装置
Zhu et al. Computing the Split Points for Learning Decision Tree in MapReduce
Czyszczoń et al. The MapReduce approach to web service retrieval

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20190524

CF01 Termination of patent right due to non-payment of annual fee