CN104408097A - 一种基于字符段热更新的混合索引方法及系统 - Google Patents
一种基于字符段热更新的混合索引方法及系统 Download PDFInfo
- Publication number
- CN104408097A CN104408097A CN201410651046.XA CN201410651046A CN104408097A CN 104408097 A CN104408097 A CN 104408097A CN 201410651046 A CN201410651046 A CN 201410651046A CN 104408097 A CN104408097 A CN 104408097A
- Authority
- CN
- China
- Prior art keywords
- data
- hard disk
- commodity
- data information
- 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.)
- Granted
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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于搜索引擎领域,提供了一种基于字符段热更新的混合索引方法,所述混合索引方法包括以下步骤:A、抓取电商网页上的商品数据信息;B、对抓取的商品数据信息的数据进行分类整理;C、将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;D、对硬盘中的商品数据信息在倒排索引中完成搜索运算;E、将内存中存储的数据与硬盘中的存储数据建立索引连接。通过本方法,有效的节约了大量的硬件资源,极大的增加了安全的可靠性,做到了实时对商品数据信息的快速更新,提高了更新的速度,节约了成本。
Description
技术领域
本发明属于搜索引擎领域,尤其涉及一种基于字符段热更新的混合索引方法及系统。
背景技术
现阶段通常做法是使用大量的硬件资源条件对相对重要的信息进行一定程度上的更新,但是无法全面实时, 而且代价昂贵。
现有的搜索引擎做法是对有修改的文档,整个文档删除,然后重新建立新的修改后的文档,原因是倒排索引“修改”的代价十分昂贵,虽然有些现有库提供了修改的API,但是到底层实现上还是整个文档删除,再整个文档创建个新的,因为一般实践证明这种方式代价比“修改倒排索引”来更新一个字段更经济, 这种方式在购物搜索这一特定领域带来了很大的问题,因为电商价格战等原因,商品价格一日三变已经是常态,而且价格等字段是商品最重要的字段之一,如果用户看见价格是100(假设这是上午抢购的价格),点击到对方网站看见的却是200(抢购结束恢复原价)用户体验将会很差。而如果要跟上这样的速度,假设每个索引有720万商品,每2个小时更新一遍,则相当于每秒需要删除2000个文档,再创建2000个新文档的索引,这对硬件资源(尤其是cpu和硬盘)是极大的压力。服务器的cpu设计上就是可以持续高效工作的,所以只是耗电量的问题,但是硬盘是难以承受7*24小时的持续碎片写入和删除的除了需要许多硬盘组成阵列来处理这样的巨大IO压力之外,还会极大降低硬盘寿命,而硬盘损坏概率上升,硬盘损坏的代价可能是数据丢失,是非常严重的。
发明内容
本发明的目的在于提供一种基于字符段热更新的混合索引方法及系统,旨在解决硬件设备损失严重、可靠性低、成本高的问题。
本发明是这样实现的,一种基于字符段热更新的混合索引方法,所述混合索引方法包括以下步骤:
A、抓取电商网页上的商品数据信息;
B、对抓取的商品数据信息的数据进行分类整理;
C、将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;
D、对硬盘中的商品数据信息在倒排索引中完成搜索运算;
E、将内存中存储的数据与硬盘中的存储数据建立索引连接。
本发明的进一步技术方案是:所述步C中包括以下步骤:
C1、将分类整理的商品的唯一标识和价格数据信息写入内存中建立的哈希表内存储;
C2、将分类整理的商品数据信息完成的写入硬盘中进行完整的存储。
本发明的进一步技术方案是:所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。
本发明的进一步技术方案是:所述内存中哈希表中的数据信息文档与硬盘中数据信息文档通过唯一标识进行关联。
本发明的进一步技术方案是:所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。
本发明的另一目的在于提供一种基于字符段热更新的混合索引系统,该混合索引系统包括:
抓取模块,用于抓取电商网页上的商品数据信息;
数据整理模块,用于对抓取的商品数据信息的数据进行分类整理;
存储模块,用于将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;
搜索运算模块,用于对硬盘中的商品数据信息在倒排索引中完成搜索运算;
建立连接模块,用于将内存中存储的数据与硬盘中的存储数据建立索引连接。
本发明的进一步技术方案是:所述存储模块包括:
写入内存单元,用于将分类整理的商品的唯一标识和价格数据信息写入内存中建立的哈希表内存储;
写入硬盘单元,用于将分类整理的商品数据信息完成的写入硬盘中进行完整的存储。
本发明的进一步技术方案是:所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。
本发明的进一步技术方案是:所述内存中哈希表中的数据信息文档与硬盘中数据信息文档通过唯一标识进行关联。
本发明的进一步技术方案是:所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。
本发明的有益效果是:通过本方法,有效的节约了大量的硬件资源,极大的增加了安全的可靠性,做到了实时对商品数据信息的快速更新,提高了更新的速度,节约了成本。
附图说明
图1是本发明实施例提供的基于字符段热更新的混合索引方法的流程图;
图2是本发明实施例提供的基于字符段热更新的混合索引系统的结构框图。
具体实施方式
附图标记:10-抓取模块 20-数据整理模块 30-存储模块 40-搜索运算模块 50-建立连接模块。
图1示出了本发明提供的基于字符段热更新的混合索引方法的流程图,其详述如下:
步骤S1,利用网页抓取工具在电子商务网站的网页上对所有罗列的商品数据信息进行抓取,在抓取中自动搜索网上的电商网站,只要是电商网站上存在的商品信息全部抓取,抓取到商品信息后进入步骤S2。
步骤S2,将在电商网站上抓取的大量商品数据信息按着种类进行划分,在对每种商品中进行详细的划分,按照名称、价格、用途、功能等等进行分类,在整理的过程中将商品的规格、型号也全部整理,其中将在电商上的评价也会抓取过来进行整理。
步骤S3,将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储,在内存中存储的商品数据只是有名称和价格,其余的信息均不存在,在硬盘中存储的商品数据时完整的信息,所有的标牌信息都在里面,所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。对商品的价格实行频繁更新策略,尽量快地更新。对商品的完整信息(商品介绍等)实行较慢的更新(如一周一次)。当更新商品价格时,不对倒排表做任何操作,直接在内存更新哈希表。而更新完整信息时才更新硬盘上的索引。因为内存速度远远高于硬盘几百倍,而且内存的电读写并没有次数和频率的问题,无论多大的IO压力都不会影响寿命。所述内存中哈希表中的数据信息文档与硬盘中数据信息文档的顺序一致。这种部分冗余混合索引是在原有索引结构的基础上,通过在内存中外挂一个哈希表,排列顺序跟硬盘上的文档顺序一致,但是因为哈希表的键(key)里只存储文档地址,哈希表的值域(value)中存储相关的频繁修改的字段值(如价格),所以这份外挂的哈希索引比硬盘上的索引要小得多(比如对于1000万商品,硬盘上的索引超过30个G,而这个外挂哈希索引理论大小只有 (4字节(地址长度)+ 4字节(价格)) * 1000万 = 80兆)实际因为其他额外开销,小于100兆,放在内存中是没有什么太大压力的。
步骤S4,对硬盘中的商品数据信息在倒排索引中完成搜索运算,其中无视内存中的数据,直接在硬盘的倒排索引中完成搜索运算,当搜索完成时,根据实际需要(虽然搜索结果可能有1000页数据,但是实际显示给用户看的只有某一页或几页)取出命中的文档地址,因为内存哈希表的键就是这个地址,所以可以直接用这个地址去内存中把价格取出, 并在内存中把这个价格和硬盘索引中的其他内容合并成完整的数据,展示给用户。这个操作的时间复杂度为 O(N),但是因为用户在一次搜索中实际会查看的商品数通常很少(实践证实在20-50之间多,极少超过100),这个数量级上,内存操作的O(N)时间复杂度是可以忽略的(现有内存速度下远低于1毫秒无法测量时间)多,极少超过100),而这个数量级上,内存操作的O(N)时间复杂度是可以忽略的(现有内存速度下远低于1毫秒无法测量时间)。
步骤S5,将整个混合索引系统中内存中的数据与硬盘中的存储数据建立其索引连接,这样我们在搜索时就会直接提取出内存中的最新的数据信息,当需要对商品的完整信息进行阅读时从硬盘中直接抽取出来。所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。在进行模糊搜索的时候利用名称进行搜索的准确率得到大大的提升,而用价格范围值搜索时的准确度相对名称搜索准确度相对较低。因为外挂的哈希索引内的价格和硬盘倒排索引内的价格存在冗余和冲突,所以按价格精确搜索可能存在部分错误的搜索结果。因为购物搜索领域的特点,根据已有用户行为分析发现根本不存在精确去搜索某一个具体价格的商品的这种用户行为,对价格的搜索都是分价格段的区间搜索,比如500元以下的,或者3000-5000元之间的这种搜索。本文描述的方法,付出的代价几乎可以忽略,而优点却是巨大的。
通过本方法,有效的节约了大量的硬件资源,极大的增加了安全的可靠性,做到了实时对商品数据信息的快速更新,提高了更新的速度,节约了成本。
图2示出了本发明提供的基于字符段热更新的混合索引系统的结构框图,其中,该混合索引系统包括:
抓取模块10,用于抓取电商网页上的商品数据信息;
数据整理模块20,用于对抓取的商品数据信息的数据进行分类整理;
存储模块30,用于将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;
搜索运算模块40,用于对硬盘中的商品数据信息在倒排索引中完成搜索运算;
建立连接模块50,用于将内存中存储的数据与硬盘中的存储数据建立索引连接。
所述存储模块30包括:
写入内存单元,用于将分类整理的商品的名称和价格数据信息写入内存中建立的哈希表内存储;
写入硬盘单元,用于将分类整理的商品数据信息完成的写入硬盘中进行完整的存储。
所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。
所述内存中哈希表中的数据信息文档与硬盘中数据信息文档的顺序一致。
所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。
通过本方法,有效的节约了大量的硬件资源,极大的增加了安全的可靠性,做到了实时对商品数据信息的快速更新,提高了更新的速度,节约了成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于字符段热更新的混合索引方法,其特征在于,所述混合索引方法包括以下步骤:
A、抓取电商网页上的商品数据信息;
B、对抓取的商品数据信息的数据进行分类整理;
C、将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;
D、对硬盘中的商品数据信息在倒排索引中完成搜索运算;
E、将内存中存储的数据与硬盘中的存储数据建立索引连接。
2.根据权利要求1所述的混合索引方法,其特征在于,所述步C中包括以下步骤:
C1、将分类整理的商品的唯一标识和价格数据信息写入内存中建立的哈希表内存储;
C2、将分类整理的商品数据信息完成的写入硬盘中进行完整的存储。
3.根据权利要求2所述的混合索引方法,其特征在于,所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。
4.根据权利要求3所述的混合索引方法,其特征在于,所述内存中哈希表中的数据信息文档与硬盘中数据信息文档通过唯一标识进行关联。
5.根据权利要求4所述的混合索引方法,其特征在于,所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。
6.一种基于字符段热更新的混合索引系统,其特征在于,该混合索引系统包括:
抓取模块,用于抓取电商网页上的商品数据信息;
数据整理模块,用于对抓取的商品数据信息的数据进行分类整理;
存储模块,用于将分类整理的商品的数据信息分别写入内存和硬盘中进行数据存储;
搜索运算模块,用于对硬盘中的商品数据信息在倒排索引中完成搜索运算;
建立连接模块,用于将内存中存储的数据与硬盘中的存储数据建立索引连接。
7.根据权利要求6所述的混合索引系统,其特征在于,所述存储模块包括:
写入内存单元,用于将分类整理的商品的唯一标识和价格数据信息写入内存中建立的哈希表内存储;
写入硬盘单元,用于将分类整理的商品数据信息完成的写入硬盘中进行完整的存储。
8.根据权利要求7所述的混合索引系统,其特征在于,所述商品数据信息的更新采用两种更新策略,对内存哈希表中的价额数据采用实时数据更新,对硬盘中的完整数据采用较慢更新并同时更新硬盘上的索引。
9.根据权利要求8所述的混合索引系统,其特征在于,所述内存中哈希表中的数据信息文档与硬盘中数据信息文档通过唯一标识进行关联。
10.根据权利要求9所述的混合索引系统,其特征在于,所述搜索时采用名称搜索结果准确度大于采用价格搜索结果准确度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410651046.XA CN104408097B (zh) | 2014-11-17 | 2014-11-17 | 一种基于字符段热更新的混合索引方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410651046.XA CN104408097B (zh) | 2014-11-17 | 2014-11-17 | 一种基于字符段热更新的混合索引方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104408097A true CN104408097A (zh) | 2015-03-11 |
CN104408097B CN104408097B (zh) | 2018-07-20 |
Family
ID=52645728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410651046.XA Active CN104408097B (zh) | 2014-11-17 | 2014-11-17 | 一种基于字符段热更新的混合索引方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104408097B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243086A (zh) * | 2015-09-08 | 2016-01-13 | 北京北大千方科技有限公司 | 一种车辆信息查询方法和装置 |
CN110309146A (zh) * | 2019-05-09 | 2019-10-08 | 全知科技(杭州)有限责任公司 | 一种支持双向索引的值域数据索引库建立方法 |
CN111553776A (zh) * | 2020-04-26 | 2020-08-18 | 成都新致云服信息技术有限公司 | 数据处理方法、装置和电子设备 |
WO2021047323A1 (zh) * | 2019-09-12 | 2021-03-18 | 苏宁云计算有限公司 | 一种数据操作方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6063128A (en) * | 1996-03-06 | 2000-05-16 | Bentley Systems, Incorporated | Object-oriented computerized modeling system |
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
CN101136027A (zh) * | 2006-09-01 | 2008-03-05 | 横河电机株式会社 | 用于数据库索引、搜索和数据检索的系统和方法 |
CN101281542A (zh) * | 2008-05-09 | 2008-10-08 | 华为技术有限公司 | 一种文件存储方法及装置 |
CN102722756A (zh) * | 2012-04-28 | 2012-10-10 | 武汉供电公司变电检修中心 | 基于分布数据仓库便携式电力信息管理系统 |
CN103365987A (zh) * | 2013-07-05 | 2013-10-23 | 北京人大金仓信息技术股份有限公司 | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 |
-
2014
- 2014-11-17 CN CN201410651046.XA patent/CN104408097B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6063128A (en) * | 1996-03-06 | 2000-05-16 | Bentley Systems, Incorporated | Object-oriented computerized modeling system |
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101060402A (zh) * | 2006-04-21 | 2007-10-24 | 盛趣信息技术(上海)有限公司 | 基于Hash-map的多点缓存装置 |
CN101136027A (zh) * | 2006-09-01 | 2008-03-05 | 横河电机株式会社 | 用于数据库索引、搜索和数据检索的系统和方法 |
CN101281542A (zh) * | 2008-05-09 | 2008-10-08 | 华为技术有限公司 | 一种文件存储方法及装置 |
CN102722756A (zh) * | 2012-04-28 | 2012-10-10 | 武汉供电公司变电检修中心 | 基于分布数据仓库便携式电力信息管理系统 |
CN103365987A (zh) * | 2013-07-05 | 2013-10-23 | 北京人大金仓信息技术股份有限公司 | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243086A (zh) * | 2015-09-08 | 2016-01-13 | 北京北大千方科技有限公司 | 一种车辆信息查询方法和装置 |
CN105243086B (zh) * | 2015-09-08 | 2019-04-12 | 北京北大千方科技有限公司 | 一种车辆信息查询方法和装置 |
CN110309146A (zh) * | 2019-05-09 | 2019-10-08 | 全知科技(杭州)有限责任公司 | 一种支持双向索引的值域数据索引库建立方法 |
WO2021047323A1 (zh) * | 2019-09-12 | 2021-03-18 | 苏宁云计算有限公司 | 一种数据操作方法、装置及系统 |
CN111553776A (zh) * | 2020-04-26 | 2020-08-18 | 成都新致云服信息技术有限公司 | 数据处理方法、装置和电子设备 |
CN111553776B (zh) * | 2020-04-26 | 2023-08-08 | 成都新致云服信息技术有限公司 | 数据处理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104408097B (zh) | 2018-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831222B (zh) | 一种基于重复数据删除的差量压缩方法 | |
CN102722498B (zh) | 搜索引擎及其实现方法 | |
CN101777017B (zh) | 一种连续数据保护系统的快速恢复方法 | |
CN106021031B (zh) | 一种btrfs文件系统的删除数据恢复方法和装置 | |
CN103678339B (zh) | 数据回流、关系型数据库中的数据访问方法及系统 | |
CN103778133A (zh) | 一种数据库对象的变更方法及装置 | |
CN108664637B (zh) | 一种检索方法及系统 | |
CN105069048A (zh) | 一种小文件存储方法、查询方法和装置 | |
CN105493028A (zh) | 用于云分析的数据一致性和回退 | |
CN101963982A (zh) | 基于位置敏感哈希的删冗存储系统元数据管理方法 | |
CN105095211A (zh) | 多媒体数据的获取方法和装置 | |
CN105095247A (zh) | 符号数据分析方法和系统 | |
CN110109910A (zh) | 数据处理方法及系统、电子设备和计算机可读存储介质 | |
CN103955530A (zh) | 一种在线重复数据删除系统的数据重建优化方法 | |
CN104408097A (zh) | 一种基于字符段热更新的混合索引方法及系统 | |
CN102819592A (zh) | 一种基于Lucene的桌面搜索系统及方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
US11748357B2 (en) | Method and system for searching a key-value storage | |
CN103778259A (zh) | 基于Sqlite3实现智能手机数据恢复的方法 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN111522950A (zh) | 一种针对非结构化海量文本敏感数据的快速识别系统 | |
CN112416992B (zh) | 基于大数据和关键词的行业类型识别方法、系统及设备 | |
CN104123104B (zh) | 日志控制系统及方法 | |
CN107729330A (zh) | 获取数据集的方法和装置 | |
CN103841168A (zh) | 数据副本更新方法及元数据服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |