CN106294402A - 一种异构数据源的数据搜索方法及其装置 - Google Patents
一种异构数据源的数据搜索方法及其装置 Download PDFInfo
- Publication number
- CN106294402A CN106294402A CN201510263852.4A CN201510263852A CN106294402A CN 106294402 A CN106294402 A CN 106294402A CN 201510263852 A CN201510263852 A CN 201510263852A CN 106294402 A CN106294402 A CN 106294402A
- Authority
- CN
- China
- Prior art keywords
- data
- data source
- related information
- user
- information
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种异构数据源的数据搜索方法及其装置,包括:抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件;读取所述原始数据文件,提取对象关联信息,更新对象数据库;根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引;以及根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。本申请对异构数据源进行自动化信息采集、分析、搜索与展示,其运营成本低,操作简便。
Description
技术领域
本申请涉及数据搜索技术领域,尤其涉及一种异构数据源的数据搜索方法及其装置。
背景技术
随着信息技术的发展,面对海量的网页内容,人们需要通过数据搜索的方式,对信息进行浏览。通常将本身已经存在的独立的数据源称之为异构数据源,异构数据源的各个组成部分具有自身的自治性,每个源仍保有自己的应用特性、完整性控制和安全性控制。用户通过登陆各异构数据源(网站),根据其不同的数据结构,进行数据搜索,浏览网页内容。但是在这种模式下,一方面,局限于不同的业务场景,信息从上线到提供给用户浏览需要经过从发布、审核、引擎索引等较长的人工或半自动化流程,需要一定的运营成本;另一方面,不同数据源(网站)所提供的信息具有不同的数据结构,用户无法通过数据搜索来实现多样化的信息浏览需求。
因此,如何对异构数据源实现自动化的数据搜索成为亟待解决的技术问题。
发明内容
有鉴于此,本申请提供一种异构数据源的数据搜索方法及其装置,其对异构数据源进行自动化信息采集、分析、搜索与展示,其运营成本低,操作简便。
本申请提供一种异构数据源的数据搜索方法,包括:
抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件;
读取所述原始数据文件,提取对象关联信息,更新对象数据库;
根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引;以及,
根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
在本申请一具体实施例中,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件之前还包括:
预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL;
所述抓取各数据源的网页源代码为:根据所述种子URL列表,抓取各数据源的网页源代码。
在本申请一具体实施例中,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件还包括:完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录;
所述读取所述原始数据文件,提取对象关联信息,更新对象数据库之前包括:轮询所述种子URL列表,若存在抓取完成记录,则读取所述原始数据文件,提取对象关联信息,更新对象数据库,否则,继续轮询等待。
在本申请一具体实施例中,所述读取所述原始数据文件,提取对象关联信息,更新对象数据库包括:
读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息;
对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息;
根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
在本申请一具体实施例中,所述读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息具体为:批量读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
在本申请一具体实施例中,所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户包括:
如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
在本申请一具体实施例中,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件还包括:将对象的图片下载,并保存在图片服务器上;
所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户具体为:根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
在本申请一具体实施例中,所述读取所述原始数据文件,提取对象关联信息,更新对象数据库还包括:将对象身份标志和详细信息建立键值对数据结构,并将所述键值对数据结构保存在缓存中;
所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户还包括:如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
对应于上述方法,本申请还提供一种异构数据源的数据搜索装置,包括:
抓取模块,用于抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件;
处理模块,用于读取所述原始数据文件,提取对象关联信息,更新对象数据库;
搜索模块,根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引;以及,
展示模块,用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
在本申请一具体实施例中,所述装置包括:
预置模块,用于预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL;
所述抓取模块中抓取各数据源的网页源代码为:根据所述种子URL列表,抓取各数据源的网页源代码。
在本申请一具体实施例中,所述抓取模块还用于完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录;
所述处理模块还用于轮询所述种子URL列表,若存在抓取完成记录,则读取所述原始数据文件,提取对象关联信息,更新对象数据库,否则,继续轮询等待。
在本申请一具体实施例中,所述处理模块包括:
读取单元,用于读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息;
处理单元,用于对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息;
写入单元,用于根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
在本申请一具体实施例中,所述读取单元具体用于批量读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
在本申请一具体实施例中,所述展示模块包括:
列表展示单元,用于如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
在本申请一具体实施例中,所述抓取模块还用于将对象的图片下载,并保存在图片服务器上;
所述展示模块具体用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
在本申请一具体实施例中,所述处理模块还用于将对象身份标志和详细信息建立键值对数据结构,并将所述键值对数据结构保存在缓存中;
所述展示模块还包括:详情展示单元542,用于如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
由以上技术方案可见,本申请抓取各数据源的网页源代码,提取并保存各数据源网页所包含的对象基本信息。本申请对所述对象基本信息进行处理,更新对象数据库。本申请建立对象数据库的索引,根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。因此,本申请无需人工干预,即可自动化完成异构数据源的数据搜索,减少了维护和运营成本。并且,本申请支持大规模的数据处理、索引,以及大量用户的实时访问。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是应用本申请的服务器的硬件结构图;
图2是本申请异构数据源的数据搜索方法的一实施例的流程图;
图3是本申请异构数据源的数据搜索方法的另一实施例的流程图;
图4是本申请异构数据源的数据搜索方法的步骤S2的流程图;
图5是本申请异构数据源的数据搜索装置的一实施例的结构图;
图6是本申请异构数据源的数据搜索装置的另一实施例的结构图;
图7是本申请异构数据源的数据搜索装置的处理模块52的结构图;
图8是本申请异构数据源进行数据搜索的一具体实现的流程图。
具体实施方式
以数据源(网站)为电商网站为例,对其信息系统进行说明。
传统的电商网站的信息系统可以从数据层、服务层和展示层进行划分,仅以商品信息系统为例,包括:
1、数据层
卖家或运营人员通过后台进行商品信息发布,经过人工审核流程将商品的基本信息和商品类目、店铺等商品关联信息形成结构化数据保存在商品数据库中。在这种业务形态下,不同电商网站间的商品数据库彼此异构,无法互通,因此很难在一个入口看到多家电商网站的商品信息。
除此之外,评论、分享等信息大部分与商品数据库中的信息形成关联,由于商品数据库异构,关联信息也很难集成在一起。
2、服务层
传统的电商网站一般通过搜索引擎技术满足用户对商品的搜索和浏览需求。引擎基于特定的索引结构整合商品数据建立倒排索引,然后根据不同的业务场景制定不同的排序算法最终呈现给买家。在这个过程中,商品数据库的表结构、引擎的索引结构、排序算法与网站卖家发布的商品特征强相关,因此面向其他网站商品索引的扩展性不够,现有的技术方案难以复用。
3、展示层
基于引擎、缓存等服务,传统的电商网站通过Web页面提供自有商品、用户信息的展示,引导用户浏览和交易。针对多样化、多来源信息的浏览需求,无法提供其他网站相似信息的对比以及关联信息的补充,无法实现导购等数据搜索的作用。
针对这些不足,本申请抓取各数据源的网页源代码,提取并保存各数据源网页所包含的对象基本信息。本申请对所述对象基本信息进行处理,更新对象数据库。本申请建立对象数据库的索引,根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。因此,本申请无需人工干预,即可自动化完成异构数据源的数据搜索,减少了维护和运营成本。并且,本申请支持大规模的数据处理、索引,以及大量用户的实时访问。
当然,实施本申请的任一技术方案并不一定需要同时达到以上所述的所有优点。
为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合本申请附图进一步说明本申请具体实现。
参看图1,本申请提供一种异构数据源的数据搜索方法,其应用于服务器1,通常该服务器为一分布式服务器。服务器1在硬件上通常包括:控制单元11、存储单元12以及其他硬件13。
参见图2,本申请所述方法2包括:
S1、抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件。
具体地,数据源为提供数据的源数据库,例如,网站等。
在本申请另一具体实现中,参看图3,所述方法3中步骤S1之前还包括:
S0、预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL。
具体地,种子URL以文件方式存储到种子URL列表中,包括类目和关键词URL。
本申请根据预先配置的数据源种子URL列表,通过HTTP GET方式请求URL地址获取原始的HTML网页,并从源代码中提取各数据源网页所包含的对象基本信息,保存成XML格式的原始数据文件。例如,所述网站为电商网站,对象为商品时,所述对象基本信息为各网站商品、评论、视频、分享等商品基本信息。本申请将所述对象基本信息保存成XML格式的原始数据文件,并对所述原始数据文件进行压缩。
在本申请另一具体实现中,所述步骤S1还包括:完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录。本申请轮询所述种子URL列表,若发现抓取完成,则执行步骤S2,否则,继续轮询等待。
S2、读取所述原始数据文件,提取对象关联信息,更新对象数据库。
在本申请一具体实现中,参看图4,所述步骤S2包括:
S21、读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
具体地,所述XML格式的原始数据文件通常为压缩文件,本申请对压缩的原始数据文件进行读取及解压缩。并且,为了加快原始数据文件的读取速度,通常采用批量读取的方式来读取所述XML格式的原始数据文件。
S22、对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息。
S23、根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
具体地,所述步骤S21、S22、S23的实现采用JavaBean(Java语言写成的可重用组件),彼此相互独立。
在本申请一具体实现中,如所述数据源为电商网站,本申请读取XML格式的原始数据文件,根据预先建立的通用数据结构,提取不同电商网站的商品、评论、视频等的对象共有信息。本申请将对象共有信息生成Pojo(普通Java对象)化的Java对象,进行禁限售名称(title)匹配、类目匹配、商品编号、相关评论和视频等关联化逻辑处理。将对象以及对象关联信息存储到数据库的商品表和商品关联信息表中,完成数据的持久化。
S3、根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引。
所述预先配置的索引结构为根据搜索场景以及详情浏览场景中至少其一,将对象的特征设定为可索引字段。比如,数据源为电商网站时,针对搜索场景,将商品名称(title)和商品类目设置为可索引字段,针对详情浏览场景,将商品id设置为可索引字段。
具体地,本申请索引为获取导入的对象基本信息,并根据所述预先配置的索引结构对所述对象基本信息建立倒排索引,根据文本匹配度进行排序。
在本申请一具体实现中,以数据源为电商网站为例,本申请利用OpenSearch将插入或删除或更新的商品信息依据预先配置好的索引结构对每条信息重新建立或更新索引,其中索引字段包括商品title、商品id、商品类目等,以支持不同的展示需要。
S4、根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
在本申请一具体实现中,所述步骤S4包括:如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
具体地,以电商网站数据源为例,如用户请求为对象列表请求,用户获得包含对应的对象的列表页面,即提供某关键词或某类目下的相关商品列表,每个列表元素展示商品标题、价格、简介。
本申请抓取各数据源的网页源代码,提取并保存各数据源网页所包含的对象基本信息。本申请对所述对象基本信息进行处理,更新对象数据库。本申请建立对象数据库的索引,根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。因此,本申请无需人工干预,即可自动化完成异构数据源的数据搜索,减少了维护和运营成本。并且,本申请支持大规模的数据处理、索引,以及大量用户的实时访问。
在本申请一具体实现中,所述步骤S1还包括:将对象的图片下载,并保存在图片服务器上。
所述步骤S4为:根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
从而,便于在进行对象显示时,同步调用图片服务器上保存的图片进行显示。
在本申请另一具体实现中,所述步骤S2还包括:
将对象身份标志和详细信息建立键值(Key-Value)对数据结构,并将所述键值对数据结构保存在缓存中。
具体地,所述详细信息为访问频繁但数据量小的数据。本申请将该数据结构导入到Tair(nosql存储系统)中,从而提供根据key获取value的缓存服务。
以数据源为电商网站为例,所述key为商品的属性id,value为商品属性。本申请根据读取的属性id和商品属性记录,调用Tair API更新缓存中的商品属性记录。
所述步骤S4包括:如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
具体地,以电商网站数据源为例,如用户请求为对象详情请求,用户获得该对象的详情页,即进行特定商品详细信息的展示和相关信息的聚合。通过步骤S3提供的索引服务获取单个商品详情,根据商品信息中的属性id获取缓存中的商品属性值,同时从引擎获取相关商品、评论、视频等信息。
对应上述方法,本申请还提供一种异构数据源的数据搜索装置,其应用于服务器1,通常该服务器为一分布式服务器。服务器1在硬件上通常包括:控制单元11、存储单元12以及其他硬件13。
参见图5,本申请所述装置5包括:
抓取模块51,用于抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件。
处理模块52,用于读取所述原始数据文件,提取对象关联信息,更新对象数据库。
搜索模块53,用于根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引。
展示模块54,用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
本申请抓取各数据源的网页源代码,提取并保存各数据源网页所包含的对象基本信息。本申请对所述对象基本信息进行处理,更新对象数据库。本申请建立对象数据库的索引,根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。因此,本申请无需人工干预,即可自动化完成异构数据源的数据搜索,减少了维护和运营成本。并且,本申请支持大规模的数据处理、索引,以及大量用户的实时访问。
在本申请另一具体实现中,参看图6,所述装置6还包括:
预置模块50,用于预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL。
具体地,种子URL以文件方式存储到种子URL列表中,包括类目和关键词URL。
本申请根据预先配置的数据源种子URL列表,通过HTTP GET方式请求URL地址获取原始的HTML网页,并从源代码中提取各数据源网页所包含的对象基本信息,保存成XML格式的原始数据文件。例如,所述网站为电商网站,对象为商品时,所述对象基本信息为各网站商品、评论、视频、分享等商品基本信息。本申请将所述对象基本信息保存成XML格式的原始数据文件,并对所述原始数据文件进行压缩。
在本申请另一具体实现中,所述抓取模块51还用于完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录。本申请轮询所述种子URL列表,若发现抓取完成,则跳转处理模块52,否则,继续轮询等待。
在本申请一具体实现中,参看图7,所述处理模块52包括:
读取单元521,用于读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
具体地,所述XML格式的原始数据文件通常为压缩文件,本申请对压缩的原始数据文件进行读取及解压缩。并且,为了加快原始数据文件的读取速度,通常采用批量读取的方式来读取所述XML格式的原始数据文件。
处理单元522,用于对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息。
写入单元523,用于根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
具体地,所述读取单元521、处理单元522、写入单元523的实现采用JavaBean(Java语言写成的可重用组件),彼此相互独立。
在本申请一具体实现中,如所述数据源为电商网站,本申请读取XML格式的原始数据文件,根据预先建立的通用数据结构,提取不同电商网站的商品、评论、视频等的对象共有信息。本申请将对象共有信息生成Pojo(普通Java对象)化的Java对象,进行禁限售名称(title)匹配、类目匹配、商品编号、相关评论和视频等关联化逻辑处理。将对象以及对象关联信息存储到数据库的商品表和商品关联信息表中,完成数据的持久化。
所述预先配置的索引结构为根据搜索场景以及详情浏览场景中至少其一,将对象的特征设定为可索引字段。比如,数据源为电商网站时,针对搜索场景,将商品名称(title)和商品类目设置为可索引字段,针对详情浏览场景,将商品id设置为可索引字段。
具体地,本申请索引为获取导入的对象基本信息,并根据所述预先配置的索引结构对所述对象基本信息建立倒排索引,根据文本匹配度进行排序。
在本申请一具体实现中,以数据源为电商网站为例,本申请利用OpenSearch将插入或删除或更新的商品信息依据预先配置好的索引结构对每条信息重新建立或更新索引,其中索引字段包括商品title、商品id、商品类目等,以支持不同的展示需要。
在本申请一具体实现中,所述展示模块54包括:列表展示单元541,用于如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
具体地,以电商网站数据源为例,如用户请求为对象列表请求,用户获得包含对应的对象的列表页面,即提供某关键词或某类目下的相关商品列表,每个列表元素展示商品标题、价格、简介。
本申请抓取各数据源的网页源代码,提取并保存各数据源网页所包含的对象基本信息。本申请对所述对象基本信息进行处理,更新对象数据库。本申请建立对象数据库的索引,根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。因此,本申请无需人工干预,即可自动化完成异构数据源的数据搜索,减少了维护和运营成本。并且,本申请支持大规模的数据处理、索引,以及大量用户的实时访问。
在本申请一具体实现中,所述抓取模块51还用于将对象的图片下载,并保存在图片服务器上。
所述展示模块54具体用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
从而,便于在进行对象显示时,同步调用图片服务器上保存的图片进行显示。
在本申请另一具体实现中,所述处理模块52还用于将对象身份标志和详细信息建立键值(Key-Value)对数据结构,并将所述键值对数据结构保存在缓存中。
具体地,所述详细信息为访问频繁但数据量小的数据。本申请将该数据结构导入到Tair(nosql存储系统)中,从而提供根据key获取value的缓存服务。
以数据源为电商网站为例,所述key为商品的属性id,value为商品属性。本申请根据读取的属性id和商品属性记录,调用Tair API更新缓存中的商品属性记录。
所述展示模块54包括:详情展示单元542,用于如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
具体地,以电商网站数据源为例,如用户请求为对象详情请求,用户获得该对象的详情页,即进行特定商品详细信息的展示和相关信息的聚合。通过搜索模块53提供的索引服务获取单个商品详情,根据商品信息中的属性id获取缓存中的商品属性值,同时从引擎获取相关商品、评论、视频等信息。
下面以一具体实现来进一步说明本申请原理。
所述异构数据源为不同的电商网站,所述对象为商品。通过本实施例,可以无需人工干预,即可自动化完成不同电商网站的导购,减少了维护和运营成本。并且,本申请支持大规模的商品信息处理、索引,以及大量用户的实时访问。
参看图8,本实施例具体实现步骤包括:
81、预先配置需要抓取的电商网站的种子URL列表,所述种子URL列表包括类目和关键词URL。
82、根据种子URL列表通过HTTP GET方式抓取各电商网站的HTML网页源代码。
83、从HTML网页源代码中提取各电商网站所包含的商品、评论、视频、分享等基本信息,保存为XML格式的原始数据文件。
84、将对象的图片下载,并保存在图片服务器上。
85、完成全部种子URL抓取后,向种子URL列表中插入抓取完成记录。
86、轮询所述种子URL列表,若发现抓取完成,则执行步骤87,否则,继续轮询等待。
87、读取所述XML格式的原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
88、读取所述原始数据文件,根据预先建立的通用数据结构,提取各电商网站的商品、评论、视频等共有信息,生成Pojo化的Java对象。
89、对商品共有信息进行禁限售名称(title)匹配、类目匹配、商品编号、相关评论和视频等关联化逻辑处理,获得各商品以及商品关联信息。
90、根据所述各商品以及商品关联信息,更新商品数据库的商品表和商品关联信息表,完成数据的持久化。
91、将对象身份标志和详细信息建立键值(Key-Value)对数据结构,并将所述键值对数据结构保存在缓存中。
92、采用OpenSearch根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引。
93、根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息和图片服务器的图片,并组装为页面返回给所述用户。
如用户请求为对象列表请求,用户获得包含对应的对象的列表页面,即提供某关键词或某类目下的相关商品列表,每个列表元素展示商品标题、价格、简介。
如用户请求为对象详情请求,用户获得该对象的详情页,即进行特定商品详细信息的展示和相关信息的聚合。通过步骤92提供的索引服务获取单个商品详情,根据商品信息中的属性id获取缓存中的商品属性值,同时从引擎获取相关商品、评论、视频等信息。
本申请的实施例提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种异构数据源的数据搜索方法,其特征在于,包括:
抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件;
读取所述原始数据文件,提取对象关联信息,更新对象数据库;
根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引;以及
根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
2.根据权利要求1所述的方法,其特征在于,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件之前还包括:
预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL;
所述抓取各数据源的网页源代码为:根据所述种子URL列表,抓取各数据源的网页源代码。
3.根据权利要求2所述的方法,其特征在于,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件还包括:完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录;
所述读取所述原始数据文件,提取对象关联信息,更新对象数据库之前包括:轮询所述种子URL列表,若存在抓取完成记录,则读取所述原始数据文件,提取对象关联信息,更新对象数据库,否则,继续轮询等待。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述读取所述原始数据文件,提取对象关联信息,更新对象数据库包括:
读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息;
对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息;
根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
5.根据权利要求4所述的方法,其特征在于,所述读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息具体为:批量读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户包括:
如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
7.根据权利要求6所述的方法,其特征在于,所述抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件还包括:将对象的图片下载,并保存在图片服务器上;
所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户具体为:根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
8.根据权利要求7所述的方法,其特征在于,所述读取所述原始数据文件,提取对象关联信息,更新对象数据库还包括:将对象身份标志和详细信息建立键值对数据结构,并将所述键值对数据结构保存在缓存中;
所述根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户还包括:如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
9.一种异构数据源的数据搜索装置,其特征在于,包括:
抓取模块,用于抓取各数据源的网页源代码,并从所述网页源代码中提取各数据源网页所包含的对象基本信息,保存为原始数据文件;
处理模块,用于读取所述原始数据文件,提取对象关联信息,更新对象数据库;
搜索模块,根据预先配置的索引结构,新建或者更新所述对象数据库中各条对象关联信息的索引;以及
展示模块,用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为页面返回给所述用户。
10.根据权利要求9所述的装置,其特征在于,所述装置包括:
预置模块,用于预先配置需要抓取的数据源网页的种子URL列表,所述种子URL列表包括类目和关键词URL;
所述抓取模块中抓取各数据源的网页源代码为:根据所述种子URL列表,抓取各数据源的网页源代码。
11.根据权利要求10所述的装置,其特征在于,所述抓取模块还用于完成全部数据源网页的种子URL抓取后,向种子URL列表中插入抓取完成记录;
所述处理模块还用于轮询所述种子URL列表,若存在抓取完成记录,则读取所述原始数据文件,提取对象关联信息,更新对象数据库,否则,继续轮询等待。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述处理模块包括:
读取单元,用于读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息;
处理单元,用于对所述各数据源的对象共有信息进行关联化逻辑处理,获得各数据源的对象以及对象关联信息;
写入单元,用于根据所述各数据源的对象以及对象关联信息,更新对象数据库的对象表和对象关联信息表,完成数据的持久化。
13.根据权利要求12所述的装置,其特征在于,所述读取单元具体用于批量读取所述原始数据文件,根据预先建立的通用数据结构,提取各数据源的对象共有信息。
14.根据权利要求13所述的装置,其特征在于,所述展示模块包括:
列表展示单元,用于如用户请求为对象列表请求,查询所述对象数据库的索引,获取对应的对象关联信息,并组装为包含对应的对象的列表页面返回给所述用户。
15.根据权利要求14所述的装置,其特征在于,所述抓取模块还用于将对象的图片下载,并保存在图片服务器上;
所述展示模块具体用于根据所接收的用户访问请求,查询所述对象数据库的索引,获取对应的对象关联信息以及图片服务器中存储的图片,组装为页面返回给所述用户。
16.根据权利要求15所述的装置,其特征在于,所述处理模块还用于将对象身份标志和详细信息建立键值对数据结构,并将所述键值对数据结构保存在缓存中;
所述展示模块还包括:详情展示单元,用于如用户请求为对象详情请求,查询所述缓存中的所述键值对数据结构,向用户提供对象的详细信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510263852.4A CN106294402A (zh) | 2015-05-21 | 2015-05-21 | 一种异构数据源的数据搜索方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510263852.4A CN106294402A (zh) | 2015-05-21 | 2015-05-21 | 一种异构数据源的数据搜索方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294402A true CN106294402A (zh) | 2017-01-04 |
Family
ID=57632327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510263852.4A Pending CN106294402A (zh) | 2015-05-21 | 2015-05-21 | 一种异构数据源的数据搜索方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294402A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239558A (zh) * | 2017-06-09 | 2017-10-10 | 成都布林特信息技术有限公司 | 通用互联网数据采集方法 |
CN107515887A (zh) * | 2017-06-29 | 2017-12-26 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的交互式查询方法 |
CN109871181A (zh) * | 2017-12-01 | 2019-06-11 | 航天信息股份有限公司 | 一种对象存取方法及装置 |
CN110688555A (zh) * | 2019-09-04 | 2020-01-14 | 华东江苏大数据交易中心股份有限公司 | 一种基于爬虫的数据源发现和验证系统 |
WO2020087796A1 (zh) * | 2018-10-31 | 2020-05-07 | 深圳壹账通智能科技有限公司 | 一种基于键值对的数据查找方法、装置及计算机设备 |
CN111177550A (zh) * | 2019-12-26 | 2020-05-19 | 航天信息股份有限公司 | 一种对象信息查询方法及装置 |
CN112181950A (zh) * | 2020-10-19 | 2021-01-05 | 北京米连科技有限公司 | 一种分布式对象数据库的构建方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100020796A (ko) * | 2008-08-13 | 2010-02-23 | (주)기술과가치 | 국책 연구 정보 시스템 및 그에 따른 운영 방법 |
CN102033910A (zh) * | 2010-11-19 | 2011-04-27 | 福建富士通信息软件有限公司 | 一种基于多数据源的企业搜索引擎技术 |
CN102081656A (zh) * | 2011-01-12 | 2011-06-01 | 江苏梦兰神彩科技发展有限公司 | 一种跨平台异构数据库的数据采集与分发系统 |
US20110276555A1 (en) * | 2002-09-23 | 2011-11-10 | Alex Fiero | Broadcast Network Platform System |
CN102360370A (zh) * | 2011-09-29 | 2012-02-22 | 迈普通信技术股份有限公司 | 数据集中管理系统及方法 |
CN102402539A (zh) * | 2010-09-15 | 2012-04-04 | 倪毅 | 对象级个性化垂直搜索引擎设计技术 |
CN102968495A (zh) * | 2012-11-29 | 2013-03-13 | 河海大学 | 搜索对比关联购物信息的垂直搜索引擎及方法 |
-
2015
- 2015-05-21 CN CN201510263852.4A patent/CN106294402A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276555A1 (en) * | 2002-09-23 | 2011-11-10 | Alex Fiero | Broadcast Network Platform System |
KR20100020796A (ko) * | 2008-08-13 | 2010-02-23 | (주)기술과가치 | 국책 연구 정보 시스템 및 그에 따른 운영 방법 |
CN102402539A (zh) * | 2010-09-15 | 2012-04-04 | 倪毅 | 对象级个性化垂直搜索引擎设计技术 |
CN102033910A (zh) * | 2010-11-19 | 2011-04-27 | 福建富士通信息软件有限公司 | 一种基于多数据源的企业搜索引擎技术 |
CN102081656A (zh) * | 2011-01-12 | 2011-06-01 | 江苏梦兰神彩科技发展有限公司 | 一种跨平台异构数据库的数据采集与分发系统 |
CN102360370A (zh) * | 2011-09-29 | 2012-02-22 | 迈普通信技术股份有限公司 | 数据集中管理系统及方法 |
CN102968495A (zh) * | 2012-11-29 | 2013-03-13 | 河海大学 | 搜索对比关联购物信息的垂直搜索引擎及方法 |
Non-Patent Citations (1)
Title |
---|
李武装: "基于语义的企业搜索引擎的研究与实现", 《电脑知识与技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239558A (zh) * | 2017-06-09 | 2017-10-10 | 成都布林特信息技术有限公司 | 通用互联网数据采集方法 |
CN107515887A (zh) * | 2017-06-29 | 2017-12-26 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的交互式查询方法 |
CN107515887B (zh) * | 2017-06-29 | 2021-01-08 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的交互式查询方法 |
CN109871181A (zh) * | 2017-12-01 | 2019-06-11 | 航天信息股份有限公司 | 一种对象存取方法及装置 |
WO2020087796A1 (zh) * | 2018-10-31 | 2020-05-07 | 深圳壹账通智能科技有限公司 | 一种基于键值对的数据查找方法、装置及计算机设备 |
CN110688555A (zh) * | 2019-09-04 | 2020-01-14 | 华东江苏大数据交易中心股份有限公司 | 一种基于爬虫的数据源发现和验证系统 |
CN111177550A (zh) * | 2019-12-26 | 2020-05-19 | 航天信息股份有限公司 | 一种对象信息查询方法及装置 |
CN111177550B (zh) * | 2019-12-26 | 2023-09-15 | 航天信息股份有限公司 | 一种对象信息查询方法及装置 |
CN112181950A (zh) * | 2020-10-19 | 2021-01-05 | 北京米连科技有限公司 | 一种分布式对象数据库的构建方法 |
CN112181950B (zh) * | 2020-10-19 | 2024-03-26 | 北京米连科技有限公司 | 一种分布式对象数据库的构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294402A (zh) | 一种异构数据源的数据搜索方法及其装置 | |
US7383510B2 (en) | System for organization, display, and navigation of digital information | |
US20140195893A1 (en) | Method and Apparatus for Generating Webpage Content | |
JP6346218B2 (ja) | オンライン取引プラットフォームのための検索方法、装置およびサーバ | |
CN103034518B (zh) | 加载浏览器控制工具的方法及浏览器 | |
CN103034680B (zh) | 针对终端设备的数据交互方法及装置 | |
Husain et al. | Online Shop as an interactive media information society based on search engine optimization (SEO) | |
WO2019242343A1 (zh) | 营销信息投放平台构建方法及装置 | |
US20150242529A1 (en) | Method for Interlacing Multiple Internet domain names with a Database Driven Website to Obtain Better Webpage Ranking on Major Search Engines by Executing Computer-Executable Instructions Stored On a Non-Transitory Computer-Readable Medium | |
US20180189359A1 (en) | Systems and Methods for Harvesting Data Associated with Fraudulent Content in a Networked Environment | |
CN103020128B (zh) | 与终端设备交互数据的方法与装置 | |
CN110717801A (zh) | 一种商品信息推送方法及装置 | |
US20120166412A1 (en) | Super-clustering for efficient information extraction | |
CN109359998A (zh) | 客户数据处理方法、装置、计算机装置及存储介质 | |
JP4939637B2 (ja) | 情報提供装置、情報提供方法、プログラム、ならびに、情報記録媒体 | |
JP5284064B2 (ja) | 商品idサーバ装置、および商品idサーバ装置の制御方法 | |
TW201629809A (zh) | 資訊處理裝置、資訊處理方法、記憶媒體 | |
US10791130B2 (en) | Trigger-based harvesting of data associated with malignant content in a networked environment | |
JP2002259409A (ja) | 情報抽出方法、情報抽出装置、コンピュータ読取可能な記憶媒体およびコンピュータ・プログラム | |
US11475083B1 (en) | Enhanced search engine techniques utilizing third-party data | |
JP5847035B2 (ja) | 情報処理システム、情報処理方法及びプログラム | |
CN108399167A (zh) | 网页信息提取方法和装置 | |
KR100951803B1 (ko) | 검색 가능한 광고를 제공하기 위한 방법, 시스템, 및컴퓨터 판독 가능한 기록 매체 | |
KR20120135179A (ko) | 쇼핑 정보를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
JP6050273B2 (ja) | 検索機能リンク作成装置、方法、ユーザ端末、および広告配信方法 |
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: 20170104 |