一种结合位置和关键词信息的在线房源搜索方法及装置与流程

文档序号:12124638阅读:来源:国知局

技术特征:

1.一种结合位置和关键词信息的在线房源搜索方法,其特征在于,该方法包括以下具体步骤:

步骤1:处理从互联网中获取的房源信息:将每条房源信息以对象的结构定义,并存储在线性结构中作为房源对象集;提取所有房源对象中包含的关键词,并存储在线性结构中作为房源关键词集;

步骤2:定义R树与B树的结构,并用步骤1得到的房源对象集和房源关键词集分别插入到R树和B树中建立索引;

步骤3:根据R树中包含的房源对象与B树中包含的房源关键词之间的关系,引入链表结构建立R树的房源空间信息和B树的房源关键词信息之间的对应关系,并构建用于在线房源搜索的BR树索引;

步骤4:根据用户输入的房源查询信息,利用步骤3中构建的BR树索引依次搜索出同时满足空间位置与关键词查询条件的若干个房源对象作为搜索结果。

2.根据权利要求1所述的方法,其特征在于,所述步骤1中将每条房源信息以对象的结构定义,具体包括:

定义房源对象的结构包含:房源的空间位置、房源信息中提取的关键词以及指向该房源完整的文本描述信息的指针。

3.根据权利要求1所述的方法,其特征在于,所述步骤2中定义R树与B树的结构,具体包括:

A1:R树为空间索引的平衡树,其中每个节点对应空间范围中的一个矩形区域,叶子节点对应的矩形区域为其存储的所有房源对象的最小边界矩形简称MBR,非叶子节点对应的矩形区域为其所有子节点对应区域范围的最小边界矩形;

A2:B树为关键词索引的多叉查找树,其中房源关键词集分布在整棵B树的所有节点中,且任何一个关键词出现且只出现在一个节点中。

4.根据权利要求1所述的方法,其特征在于,所述步骤2中的用步骤1得到的房源对象集和房源关键词集分别插入到R树和B树中建立索引,具体包括:

B1:定义R树叶子节点对应的最小边界矩形的大小,并以此为单位划分空间范围,得到若干个最小边界矩形作为R树的叶子节点对应的矩形区域;

B2:依次获取房源对象集中的所有对象,根据每个对象包含的房源空间位置在空间范围上所属的矩形区域,将该房源对象插入到R树中对应的叶子节点中进行索引,并在该叶子节点的结构中添加房源对象在线性结构中存储的地址,由此建立了用于房源对象搜索的R树索引;

B3:若获取了新的房源信息,同样经过步骤1得到新房源对象集,并将其中的所有对象插入到R树的叶子节点中进行索引;

B4:依次获取房源关键词集中的所有关键词,并插入到B树中的各个节点中进行索引,由此建立了用于房源关键词搜索的B树索引;

B5:若获取了新的房源信息,同样经过步骤1得到新房源关键词集,并将其中的所有关键词插入到B树的节点中进行索引,若插入的关键词在B树中已存在,则不必重复插入。

5.根据权利要求1所述的方法,其特征在于,所述步骤3具体包括:

C1:为B树上包含的每一个房源关键词添加对应的链表结构简称MBRList,且链表结构中的元素存储的是指向R树节点的指针;

C2:首先构建R树的叶子节点与B树的关联:针对R树的所有叶子节点,遍历叶子节点上所有最小边界矩形内的房源对象,获取其包含的房源关键词集合;针对该房源关键词集合中的每一个关键词,查找该关键词在B树中的节点位置,并向对应节点中相同关键词的链表结构中,添加指向R树中该叶子节点的指针;

C3:其次构建R树的非叶子节点与B树的关联:首先层次遍历R树并将非叶子节点入队列,再以从队列中读取的顺序压入栈结构中,其次将栈结构中所有R树节点出栈,对每一个出栈的非叶子节点,用前序遍历其所有子节点,获取其子节点包含的房源关键词集,并做合并去重操作得到该非叶子节点的房源关键词集合;针对获取的R树的非叶子节点的房源关键词集合,重复执行C2;将R树的所有节点都关联到B树上之后,得到用于在线房源搜索的BR树索引。

6.根据权利要求1所述的方法,其特征在于,所述步骤4具体包括:

D1:获取用户输入的房源查询信息,并用步骤1中的方法进行预处理,得到查询对象的空间位置与其包含的关键词集;

D2:根据查询对象包含的关键词集,在构建好的BR树索引中的B树中筛选出满足关键词完全匹配条件的B树节点,进而根据MBRList上存储的指针信息,筛选出满足关键词约束的R树的叶子节点;

D3:根据查询对象的空间位置,在满足关键词条件的R树叶子节点集合中,针对每个叶子节点提取出属于该节点的房源对象集合,计算每个房源对象与查询位置的距离,并进行排序;对所有满足条件的R树叶子节点重复上述过程,将得到与查询关键词完全匹配的,按照距离的升序排列的若干个房源对象,并由它们构成搜索结果。

7.一种结合位置和关键词信息的在线房源搜索装置,其特征在于,该装置包括:

a)信息处理与存储模块,处理从互联网中获取的房源信息:将每条房源信息以对象的结构定义,并存储在线性结构中作为房源对象集;提取所有房源对象中包含的关键词,并存储在线性结构中作为房源关键词集;

b)索引构建模块,与信息处理与存储模块连接,将所述得到的房源对象集和房源关键词集分别插入到R树和B树中建立索引,并根据R树的房源空间信息和B树的房源关键词信息之间的对应关系构建用于在线房源搜索的BR树索引;

c)搜索模块,与索引构建模块连接,接收用户输入的关键词和空间位置信息,返回满足条件的房源对象。

8.根据权利要求7所述的装置,其特征在于,所述索引构建模块在B树中为包含的每一个房源关键词添加对应的链表结构,通过该链表结构建立B树和R 树之间的关联;获取R树中的每一个节点包含的房源关键词集合,针对房源关键词集合中的每一个关键词,查找该关键词在B树中的节点位置,并向对应节点中相同关键词的链表结构中,添加指向R树中该叶子节点的指针,得到用于在线房源搜索的BR树索引。

9.根据权利要求7所述的装置,其特征在于,所述索引构建模块在建立R树的房源空间信息和B树的房源关键词信息之间的对应关系时,首先构建R树的叶子节点与B树的关联:针对R树的所有叶子节点,遍历叶子节点上所有最小边界矩形内的房源对象,获取其包含的房源关键词集合;其次构建R树的非叶子节点与B树的关联:层次遍历R树并将非叶子节点入队列,再以从队列中读取的顺序压入栈结构中,将栈结构中所有R树节点出栈,对每一个出栈的非叶子节点,用前序遍历其所有子节点,获取其子节点包含的房源关键词集,并做合并去重操作得到该非叶子节点的房源关键词集合。

10.根据权利要求7所述的装置,其特征在于,所述搜索模块中,根据用户输入的查询对象包含的关键词集和空间位置,在构建好的BR树索引中的B树中筛选出满足关键词完全匹配条件的B树节点,进而根据MBRList上存储的指针信息,筛选出满足关键词约束的R树的叶子节点;获取所有满足约束叶子节点中包含的房源对象集合,计算每个房源对象与查询位置的距离,并按照距离的升序排列的若干个房源对象构成搜索结果。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1