对BANKS(Browsing and Keyword Searching in Relational Databases)系统的设计的理解加体会

    这几天在和老师一起研究关于将关系数据的数据通过图的模式来进行关键词的搜索。同时也对在关系数据的搜索方面有两大类,1、数据图

2、模式图。由于以前做过数据图的相关实验,所以对数据图相对了解!在数据图上有几大比较成熟的系统,如:BANKS,BLINKS,Object rank等等,而模式图的系统有微软研究中心的DBXplorer ,和加利福尼亚大学的 DISCOVER同时也有我们国内人民大学的S-CBR。由于我的老师是采用数据图的模式,所以重点就放在的数据图上了。这几天主要就是研究了BANKS系统。

     首先要注意一下BANKS系统他是基于Dijkstra算法的。

算法流程图如下:

  

在此处要注意两点:

1、注意堆,堆的遍历不是取出一个集合就遍历完,而是只是取出该集合的第一个元素,然后如果该集合还有元素这继续放到堆中,在按照每个集合的第一个元素到对应的关键节点的距离进行排序,顾要遍历完一个集合可能需要经过几次遍历,

2、注意为每次取出集合中的一个节点,在第一次访问时都要为每个节点创建关键词个数个集合,用来存储对应关键词的关键节点访问记录。用于判断当前取出的节点是否是根节点。

以上是个人理解该算法后的一些感触。希望能够帮助大家理解这个算法!

你可能感兴趣的:(算法,object,存储,微软)