CN108280215A - 一种基于Solr的电商索引文件的混合式更新方法 - Google Patents

一种基于Solr的电商索引文件的混合式更新方法 Download PDF

Info

Publication number
CN108280215A
CN108280215A CN201810116231.7A CN201810116231A CN108280215A CN 108280215 A CN108280215 A CN 108280215A CN 201810116231 A CN201810116231 A CN 201810116231A CN 108280215 A CN108280215 A CN 108280215A
Authority
CN
China
Prior art keywords
index file
solrj
update
time
real
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
Application number
CN201810116231.7A
Other languages
English (en)
Other versions
CN108280215B (zh
Inventor
王晨阳
刘垣
郭李华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian University of Technology
Original Assignee
Fujian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian University of Technology filed Critical Fujian University of Technology
Priority to CN201810116231.7A priority Critical patent/CN108280215B/zh
Publication of CN108280215A publication Critical patent/CN108280215A/zh
Application granted granted Critical
Publication of CN108280215B publication Critical patent/CN108280215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic 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的电商索引文件的混合式更新方法。
背景技术
在电商网站***里,当商品库里的商品信息发生变动时,变动需要更新到搜索引擎***的索引文件里。商品属性如价格、实时库存等敏感信息要求实时更新到索引文件中,而像商品名称或描述信息则允许存在一定延迟后再更新到索引文件中。目前,基于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。
CN201810116231.7A 2018-02-06 2018-02-06 一种基于Solr的电商索引文件的混合式更新方法 Active CN108280215B (zh)

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 true CN108280215A (zh) 2018-07-13
CN108280215B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078682A (zh) * 2019-10-17 2020-04-28 贝壳技术有限公司 一种业务数据索引构建方法及***
CN112949326A (zh) * 2019-11-26 2021-06-11 多点(深圳)数字科技有限公司 信息查询方法、装置、设备和计算机可读介质
CN114385833A (zh) * 2022-03-23 2022-04-22 支付宝(杭州)信息技术有限公司 更新知识图谱的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026138A1 (en) * 2004-01-09 2006-02-02 Gavin Robertson Real-time indexes
CN1811759A (zh) * 2005-01-26 2006-08-02 华为技术有限公司 一种对信息建增量索引的方法
CN101650741A (zh) * 2009-08-27 2010-02-17 中国电信股份有限公司 一种分布式全文检索的索引实时更新的方法和***
US20100088342A1 (en) * 2008-10-04 2010-04-08 Microsoft Corporation Incremental feature indexing for scalable location recognition
CN102339315A (zh) * 2011-09-30 2012-02-01 亿赞普(北京)科技有限公司 一种广告数据的索引更新方法和***
CN103207872A (zh) * 2012-01-17 2013-07-17 深圳市快播科技有限公司 一种实时索引方法和服务器
CN106156164A (zh) * 2015-04-15 2016-11-23 腾讯科技(深圳)有限公司 资源信息处理方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026138A1 (en) * 2004-01-09 2006-02-02 Gavin Robertson Real-time indexes
CN1811759A (zh) * 2005-01-26 2006-08-02 华为技术有限公司 一种对信息建增量索引的方法
US20100088342A1 (en) * 2008-10-04 2010-04-08 Microsoft Corporation Incremental feature indexing for scalable location recognition
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)

* Cited by examiner, † Cited by third party
Title
刘小珠 等: "基于分配空间自学习的在线动态索引混合更新机制", 《计算机研究与发展》 *
方颖 等: "支持固定网络中频繁更新的移动对象混合索引模型", 《小型微型计算机***》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078682A (zh) * 2019-10-17 2020-04-28 贝壳技术有限公司 一种业务数据索引构建方法及***
CN112949326A (zh) * 2019-11-26 2021-06-11 多点(深圳)数字科技有限公司 信息查询方法、装置、设备和计算机可读介质
CN112949326B (zh) * 2019-11-26 2023-05-05 多点(深圳)数字科技有限公司 信息查询方法、装置、设备和计算机可读介质
CN114385833A (zh) * 2022-03-23 2022-04-22 支付宝(杭州)信息技术有限公司 更新知识图谱的方法及装置

Also Published As

Publication number Publication date
CN108280215B (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
US11663176B2 (en) Data field extraction model training for a data intake and query system
CN109857724B (zh) 基于区块链实现支持多种数据库的方法及设备
US11704490B2 (en) Log sourcetype inference model training for a data intake and query system
US7917499B2 (en) Updating adaptive, deferred, incremental indexes
US8051066B2 (en) Expression-based web logger for usage and navigational behavior tracking
US10970114B2 (en) Systems and methods for task scheduling
US8560569B2 (en) Method and apparatus for performing bulk file system attribute retrieval
US9864788B2 (en) Method and system for cascading a middleware to a data orchestration engine
US7734618B2 (en) Creating adaptive, deferred, incremental indexes
US20050246386A1 (en) Hierarchical storage management
US11182406B2 (en) Increased data availability during replication
US11574242B1 (en) Guided workflows for machine learning-based data analyses
CN108280215A (zh) 一种基于Solr的电商索引文件的混合式更新方法
US8015195B2 (en) Modifying entry names in directory server
CN116663050A (zh) 一种基于数据库的智能合约数据快速查询方法
CN112579695A (zh) 一种数据同步方法和装置
CN111753019B (zh) 一种应用于数据仓库的数据分区方法和装置
CN112748866A (zh) 一种增量索引数据的处理方法和装置
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
CN111241189A (zh) 一种同步数据的方法和装置
CN111966533B (zh) 电子文件管理方法、装置、计算机设备和存储介质
CN113347052B (zh) 通过访问日志统计用户访问数据的方法和装置
CN113761053A (zh) 一种数据查询方法、装置、电子设备及存储介质
CN113742376A (zh) 一种同步数据的方法、第一服务器以及同步数据的***
JP2002373101A (ja) ディレクトリ間連携方法

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