CN108280215B - 一种基于Solr的电商索引文件的混合式更新方法 - Google Patents
一种基于Solr的电商索引文件的混合式更新方法 Download PDFInfo
- Publication number
- CN108280215B CN108280215B CN201810116231.7A CN201810116231A CN108280215B CN 108280215 B CN108280215 B CN 108280215B CN 201810116231 A CN201810116231 A CN 201810116231A CN 108280215 B CN108280215 B CN 108280215B
- Authority
- CN
- China
- Prior art keywords
- index file
- updating
- commodity
- time
- solrj
- 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.)
- Active
Links
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于Solr的电商索引文件的混合式更新方法,事先将商品的信息分为敏感信息和非敏感信息,在敏感信息变动时采用实时更新索引文件的方式更新,而其它非敏感信息的变动采用定时增量更新索引文件的方式更新,这样既保证了搜索引擎的敏感信息的实时更新,又兼顾了搜索引擎的性能,尽可能减少对索引文件的频繁更新操作。
Description
技术领域
本发明涉及计算机技术领域,特别是一种基于Solr的电商索引文件的混合式更新方法。
背景技术
在电商网站系统里,当商品库里的商品信息发生变动时,变动需要更新到搜索引擎系统的索引文件里。商品属性如价格、实时库存等敏感信息要求实时更新到索引文件中,而像商品名称或描述信息则允许存在一定延迟后再更新到索引文件中。目前,基于Solr的搜索引擎的索引文件更新方法大致有如下几种方法:
一、全量更新
全量更新虽然可以采取分段读取数据,可以按自增主键分段或者按记录更新的时间截分段取。但由于数据源是可增删改查,这种更新会导致按自增id的数据在有些地方比较稀疏;而按记录的更新时间截,也有可能在某个时间段里更新大量数据,所以也会有不同时间段数据过稀或者过密的情况,这种情况导致分段取数据调控不方便。而且如果数据源的数据量大的话,完成一次全量更新得耗费较长的时间,而且可能真正需要更新到索引文件的记录只有某几条,所以对于数据源的数据量比较多的情况,全量更新明显不适合。
二、增量更新
增量更新是每隔一定的时间,把数据源有被修改的记录更新到索引文件中,所以存在数据源和索引文件之间数据同步的延迟。对于敏感数据如商品价格、实时库存等如果没能实时同步到索引文件的话,那么用户通过搜索引擎检索出来的商品的价格、实时库存则和实际的商品价格、实时库存不符。
3)实时更新
每次商品信息变动都向Solr发送一个更新索引文件的请求。实时更新的方法会频繁对索引文件进行写入操作,影响索引文件的读取效率。而且客户端是以同步的方式向Solr发送一个更新索引文件的请求,并不能保证该请求肯定会执行成功,如果中间出现网络故障,则会造成数据源和索引文件不一致。
发明内容
本发明要解决的技术问题,在于提供一种基于Solr的电商索引文件的混合式更新方法,将商品的敏感信息变动实时更新到索引文件中,而其它非敏感信息的变动采用定时增量更新的方式更新到索引文件中,这样既保证了搜索引擎的敏感信息的实时更新,又兼顾了搜索引擎的性能,尽可能减少对索引文件的频繁更新操作。
本发明是这样实现的:一种基于Solr的电商索引文件的混合式更新方法,事先将商品信息分为敏感信息和非敏感信息,并且基于Solrj开发一个WEB服务命名为Solrj服务,所述Solrj服务用于实现实时更新索引文件和定时增量更新索引文件,然后进行如下步骤:
步骤S1、商品管理系统修改商品信息并将商品修改的信息保存到数据库,同时将商品记录的IsCommit字段值改为“F”,且LastUpdatedDateTime字段值记录修改时间;
步骤S2、判断本次修改商品信息的操作是否为删除操作,如果是删除操作,则更改商品记录的Expired字段的值为“T”,等待所述Solrj服务进行所述定时增量更新索引文件;如果不是删除操作,则继续执行步骤S3;
步骤S3、判断被修改的商品信息是否包含有敏感信息,如果是,则所述Solrj服务进行所述实时更新索引文件;如果不是,则等待所述Solrj服务进行所述定时增量更新索引文件。
进一步地,所述实时更新索引文件包括以下步骤:
步骤S11、所述商品管理系统异步调用所述Solrj服务提供的实时更新索引接口;
步骤S12、所述Solrj服务接收到调用请求后,向Solr搜索服务器发送实时更新索引文件的请求;
步骤S13、所述Solr搜索服务器更新完索引文件后,反馈更新成功通知消息给所述Solrj服务;
步骤S14、所述Solrj服务向所述商品管理系统发送异步通知消息,通知所述商品管理系统当前实时更新索引请求已成功执行;
步骤S15、所述商品管理系统收到异步通知消息后,更新IsCommit字段的值为“T”,后给所述Solrj服务返回一条修改成功的通知消息;
步骤S16、如果所述Solrj服务收到所述商品管理系统返回的修改成功的通知消息后,则本次实时更新索引结束;如果没有收到所述商品管理系统返回的修改成功的通知消息,则会每隔一周期重复步骤S14和S15,如果都没有收到返回的修改成功的通知消息,则表示这条商品记录的IsCommit的字段值没有成功改为“T”,那么结束本次实时更新索引文件,同时将本次修改的商品信息等待所述Solrj服务进行所述定时增量更新索引文件,重新被更新一次。
进一步地,所述步骤S16中,最多重复3次步骤S14和S15,所述周期为1min。
进一步地,所述定时增量更新索引文件包括以下步骤:
步骤S21、首先查询config.properties配置文件中的最后一次定时增量更新索引文件的时间last_index_time;
步骤S22、搜索数据库商品记录的LastUpdatedDateTime大于last_index_time,并且IsCommit字段为“F”的记录集;遍历所述记录集,如果记录的Expired字段为“T”,则从索引文件中删除该条记录,如果不是,则更新索引文件,并保存当前更新索引文件的时间到config.properties配置文件中的last_index_time。
本发明具有如下优点:本发明提供一种基于Solr的电商索引文件的混合式更新方法,事先将商品的信息分为敏感信息和非敏感信息,在敏感信息变动时采用实时更新索引文件的方式更新,而其它非敏感信息的变动采用定时增量更新索引文件的方式更新,这样既保证了搜索引擎的敏感信息的实时更新,又兼顾了搜索引擎的性能,尽可能减少对索引文件的频繁更新操作。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种基于Solr的电商索引文件的混合式更新方法的执行流程图。
图2为本发明所述的实时更新索引文件的时序图。
图3为本发明所述的定时增量更新索引文件的时序图。
图4为本发明的搜索引擎系统的结构图。
具体实施方式
请参阅图1-4所示,本发明一种基于Solr的电商索引文件的混合式更新方法,事先将商品信息分为敏感信息和非敏感信息,并且基于Solrj开发一个WEB服务命名为Solrj服务,所述Solrj服务用于实现实时更新索引文件和定时增量更新索引文件,然后进行如下步骤:
步骤S1、商品管理系统修改商品信息并将商品修改的信息保存到数据库,同时将商品记录的IsCommit字段值改为“F”,且LastUpdatedDateTime字段值记录修改时间;
步骤S2、判断本次修改商品信息的操作是否为删除操作,如果是删除操作,则更改商品记录的Expired字段的值为“T”,等待所述Solrj服务进行所述定时增量更新索引文件;如果不是删除操作,则继续执行步骤S3;
步骤S3、判断被修改的商品信息是否包含有敏感信息,如果是,则所述Solrj服务进行所述实时更新索引文件;如果不是,则等待所述Solrj服务进行所述定时增量更新索引文件。
将敏感信息变动时采用实时更新索引文件的方式更新,而其它非敏感信息的变动采用定时增量更新索引文件的方式更新,这样既保证了搜索引擎的敏感信息的实时更新,又兼顾了搜索引擎的性能,尽可能减少对索引文件的频繁更新操作。
优选地,所述实时更新索引文件包括以下步骤:
步骤S11、所述商品管理系统异步调用所述Solrj服务提供的实时更新索引接口;
步骤S12、所述Solrj服务接收到调用请求后,向Solr搜索服务器发送实时更新索引文件的请求;
步骤S13、所述Solr搜索服务器更新完索引文件后,反馈更新成功通知消息给所述Solrj服务;
步骤S14、所述Solrj服务向所述商品管理系统发送异步通知消息,通知所述商品管理系统当前实时更新索引请求已成功执行;
步骤S15、所述商品管理系统收到异步通知消息后,更新IsCommit字段的值为“T”,后给所述Solrj服务返回一条修改成功的通知消息;
步骤S16、如果所述Solrj服务收到所述商品管理系统返回的修改成功的通知消息后,则本次实时更新索引结束;如果没有收到所述商品管理系统返回的修改成功的通知消息,则会每隔一周期重复步骤S14和S15,如果都没有收到返回的修改成功的通知消息,则表示这条商品记录的IsCommit的字段值没有成功改为“T”,那么结束本次实时更新索引文件,同时将本次修改的商品信息等待所述Solrj服务进行所述定时增量更新索引文件,重新被更新一次,保证了数据库和索引文件的一致。。
优选地,所述步骤S16中,最多重复3次步骤S14和S15,所述周期为1min。
优选地,所述定时增量更新索引文件包括以下步骤:
步骤S21、首先查询config.properties配置文件中的最后一次定时增量更新索引文件的时间last_index_time;
步骤S22、搜索数据库商品记录的LastUpdatedDateTime大于last_index_time,并且IsCommit字段为“F”的记录集;遍历所述记录集,如果记录的Expired字段为“T”,则从索引文件中删除该条记录,如果不是,则更新索引文件,并保存当前更新索引文件的时间到config.properties配置文件中的last_index_time。
实施例一:
事先将商品的价格、实时库存归类为敏感信息并作为一个可以维护的字典,其它的商品信息作为非敏感信息;当商品的价格或实时库存修改后,则所述Solrj服务进行所述实时更新索引文件;当其它的商品信息修改后,则所述Solrj服务进行定时增量更新。用户可以根据实际情况灵活的自定义,将商品信息分为敏感信息和非敏感信息。
本发明的优点:事先将商品的信息分为敏感信息和非敏感信息,在敏感信息变动时采用实时更新索引文件的方式更新,而其它非敏感信息的变动采用定时增量更新索引文件的方式更新,这样既保证了搜索引擎的敏感信息的实时更新,又兼顾了搜索引擎的性能,尽可能减少对索引文件的频繁更新操作。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种基于Solr的电商索引文件的混合式更新方法,其特征在于:事先将商品信息分为敏感信息和非敏感信息,并且基于Solrj开发一个WEB服务命名为Solrj服务,所述Solrj服务用于实现实时更新索引文件和定时增量更新索引文件,然后进行如下步骤:
步骤S1、商品管理系统修改商品信息并将商品修改的信息保存到数据库,同时将商品记录的IsCommit字段值改为“F”,且LastUpdatedDateTime字段值记录修改时间;
步骤S2、判断本次修改商品信息的操作是否为删除操作,如果是删除操作,则更改商品记录的Expired字段的值为“T”,等待所述Solrj服务进行所述定时增量更新索引文件;如果不是删除操作,则继续执行步骤S3;
步骤S3、判断被修改的商品信息是否包含有敏感信息,如果是,则所述Solrj服务进行所述实时更新索引文件;如果不是,则等待所述Solrj服务进行所述定时增量更新索引文件。
2.根据权利要求1所述的一种基于Solr的电商索引文件的混合式更新方法,其特征在于:所述实时更新索引文件包括以下步骤:
步骤S11、所述商品管理系统异步调用所述Solrj服务提供的实时更新索引接口;
步骤S12、所述Solrj服务接收到调用请求后,向Solr搜索服务器发送实时更新索引文件的请求;
步骤S13、所述Solr搜索服务器更新完索引文件后,反馈更新成功通知消息给所述Solrj服务;
步骤S14、所述Solrj服务向所述商品管理系统发送异步通知消息,通知所述商品管理系统当前实时更新索引请求已成功执行;
步骤S15、所述商品管理系统收到异步通知消息后,更新IsCommit字段的值为“T”,后给所述Solrj服务返回一条修改成功的通知消息;
步骤S16、如果所述Solrj服务收到所述商品管理系统返回的修改成功的通知消息后,则本次实时更新索引结束;如果没有收到所述商品管理系统返回的修改成功的通知消息,则会每隔一周期重复步骤S14和S15,如果都没有收到返回的修改成功的通知消息,则表示这条商品记录的IsCommit的字段值没有成功改为“T”,那么结束本次实时更新索引文件,同时将本次修改的商品信息等待所述Solrj服务进行所述定时增量更新索引文件,重新被更新一次。
3.根据权利要求2所述的一种基于Solr的电商索引文件的混合式更新方法,其特征在于:所述步骤S16中,最多重复3次步骤S14和S15,所述周期为1min。
4.根据权利要求1-2任一项所述的一种基于Solr的电商索引文件的混合式更新方法,其特征在于:所述定时增量更新索引文件包括以下步骤:
步骤S21、首先查询config.properties配置文件中的最后一次定时增量更新索引文件的时间last_index_time;
步骤S22、搜索数据库商品记录的LastUpdatedDateTime大于last_index_time,并且IsCommit字段为“F”的记录集;遍历所述记录集,如果记录的Expired字段为“T”,则从索引文件中删除该条记录,如果不是,则更新索引文件,并保存当前更新索引文件的时间到config.properties配置文件中的last_index_time。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810116231.7A CN108280215B (zh) | 2018-02-06 | 2018-02-06 | 一种基于Solr的电商索引文件的混合式更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810116231.7A CN108280215B (zh) | 2018-02-06 | 2018-02-06 | 一种基于Solr的电商索引文件的混合式更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280215A CN108280215A (zh) | 2018-07-13 |
CN108280215B true CN108280215B (zh) | 2021-07-30 |
Family
ID=62807808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810116231.7A Active CN108280215B (zh) | 2018-02-06 | 2018-02-06 | 一种基于Solr的电商索引文件的混合式更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108280215B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078682A (zh) * | 2019-10-17 | 2020-04-28 | 贝壳技术有限公司 | 一种业务数据索引构建方法及系统 |
CN112949326B (zh) * | 2019-11-26 | 2023-05-05 | 多点(深圳)数字科技有限公司 | 信息查询方法、装置、设备和计算机可读介质 |
CN113778638A (zh) * | 2021-03-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据获取方法、装置、电子设备及存储介质 |
CN114385833B (zh) * | 2022-03-23 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 更新知识图谱的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1811759A (zh) * | 2005-01-26 | 2006-08-02 | 华为技术有限公司 | 一种对信息建增量索引的方法 |
CN101650741A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种分布式全文检索的索引实时更新的方法和系统 |
CN102339315A (zh) * | 2011-09-30 | 2012-02-01 | 亿赞普(北京)科技有限公司 | 一种广告数据的索引更新方法和系统 |
CN103207872A (zh) * | 2012-01-17 | 2013-07-17 | 深圳市快播科技有限公司 | 一种实时索引方法和服务器 |
CN106156164A (zh) * | 2015-04-15 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源信息处理方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026138A1 (en) * | 2004-01-09 | 2006-02-02 | Gavin Robertson | Real-time indexes |
US8447120B2 (en) * | 2008-10-04 | 2013-05-21 | Microsoft Corporation | Incremental feature indexing for scalable location recognition |
-
2018
- 2018-02-06 CN CN201810116231.7A patent/CN108280215B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1811759A (zh) * | 2005-01-26 | 2006-08-02 | 华为技术有限公司 | 一种对信息建增量索引的方法 |
CN101650741A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种分布式全文检索的索引实时更新的方法和系统 |
CN102339315A (zh) * | 2011-09-30 | 2012-02-01 | 亿赞普(北京)科技有限公司 | 一种广告数据的索引更新方法和系统 |
CN103207872A (zh) * | 2012-01-17 | 2013-07-17 | 深圳市快播科技有限公司 | 一种实时索引方法和服务器 |
CN106156164A (zh) * | 2015-04-15 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源信息处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于分配空间自学习的在线动态索引混合更新机制;刘小珠 等;《计算机研究与发展》;20121231;第49卷(第10期);全文 * |
支持固定网络中频繁更新的移动对象混合索引模型;方颖 等;《小型微型计算机系统》;20091231;第30卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108280215A (zh) | 2018-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10803016B2 (en) | Predictive models of file access patterns by application and file type | |
CN108280215B (zh) | 一种基于Solr的电商索引文件的混合式更新方法 | |
US8099386B2 (en) | Method and apparatus for synchronizing databases connected by wireless interface | |
CN110795499B (zh) | 基于大数据的集群数据同步方法、装置、设备及存储介质 | |
CN111881116A (zh) | 数据迁移方法、数据迁移系统、计算机系统和存储介质 | |
CN107577420B (zh) | 文件处理方法和装置、服务器 | |
CN112380227B (zh) | 基于消息队列的数据同步方法、装置、设备及存储介质 | |
CN104391725A (zh) | 页面展示方法和页面展示装置 | |
CN106302829A (zh) | 一种信息访问方法、装置及服务器 | |
CN104765840A (zh) | 一种大数据分布式存储的方法和装置 | |
CN102780603B (zh) | 网站流量控制方法及装置 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN113111129A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN116663050A (zh) | 一种基于数据库的智能合约数据快速查询方法 | |
US8275741B2 (en) | Method and apparatus for memory management in an electronic device | |
CN114706867A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
US11507277B2 (en) | Key value store using progress verification | |
WO2018077092A1 (zh) | 应用于分布式文件系统的存盘方法、装置及分布式文件系统 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN112948485B (zh) | 问答数据的同步方法、装置、系统、服务器及存储介质 | |
CN112818166A (zh) | 一种视频信息查询方法、装置、电子设备和存储介质 | |
CN110866068A (zh) | 一种基于hdfs的公告数据存储方法及其装置 | |
CN113010475B (zh) | 用于存储轨迹数据的方法和装置 | |
US8024354B2 (en) | System and method for managing data using a hierarchical metadata management system | |
CN115048460A (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |