CN117112637A - 批量数据匹配方法、装置、设备及存储介质 - Google Patents
批量数据匹配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117112637A CN117112637A CN202311059286.6A CN202311059286A CN117112637A CN 117112637 A CN117112637 A CN 117112637A CN 202311059286 A CN202311059286 A CN 202311059286A CN 117112637 A CN117112637 A CN 117112637A
- Authority
- CN
- China
- Prior art keywords
- matching
- basic data
- matching result
- data
- result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012795 verification Methods 0.000 claims abstract description 15
- 230000014509 gene expression Effects 0.000 claims description 31
- 238000000605 extraction Methods 0.000 claims description 14
- 230000011218 segmentation Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 abstract description 8
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- -1 that is Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及数据匹配技术领域,尤其涉及批量数据匹配方法、装置、设备及存储介质,所述方法包括:获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;通过API获取匹配条件并进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,并根据匹配条件采用Java对基础数据进行二次匹配,整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列;本申请公开的方法,通过API和卡夫卡消息中心配合获取匹配条件并返回匹配结果,可实现异步处理,通过ElasticSearch引擎和Java进行基础数据的匹配以获取匹配结果,具有匹配效率高、匹配准确性高的优点,大大缩短响应时间。
Description
技术领域
本发明涉及数据匹配技术领域,尤其涉及一种批量数据匹配方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展,网购逐渐替代了人们的日常生活购物,即线上购物的比例逐渐超过线下购物的比例,线上购物带来的物流订单大批量增长。
目前物流包裹的所有信息都由包裹上所粘贴的面单所承载,但在承接大批量的配送过程中,存在需要根据某些条件匹配大批量运单的情况,比如:当出现极端天气时,需要以极端天气所在地区的位置信息为条件大批量匹配运单,以拦截该地区的收发件。
现有的物流数据管理系统中,当需要进行大批量数据匹配时,由于业务影响导致匹配逻辑较为复杂,因此,无法实现及时返回匹配结果的目标,即存在匹配效率低的问题,无法做到及时响应。
可见,现有技术还有待改进和提高。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种批量数据匹配方法、装置、设备及存储介质,通过ElasticSearch引擎和Java进行基础数据的匹配,具有匹配效率高、匹配准确性高的优点,可达到及时响应的目的。
本发明第一方面提供了一种批量数据匹配方法,包括:从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
可选的,在本发明第一方面的第一种实施方式中,所述从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,具体包括:配置Filebeat获取日志文件的路径,通过Filebeat从卡夫卡消息队列中采集日志数据;配置logstash的服务主机和端口,采用logstash对Filebeat所采集的日志数据进行解耦和预处理,得到基础数据;配置logstash的output为ElasticSearch,将基础数据存储至ElasticSearch引擎中。
可选的,在本发明第一方面的第二种实施方式中,所述ElasticSearch引擎根据基础数据生成关键词索引,具体包括:采用ElasticSearch引擎将基础数据所包括的文档序列化成json格式,并获取json对象;采用分词模型获取json对象所包括的类型关键词,根据类型关键词生成类型索引;通过Hash算法对类型索引进行分片处理,得到关键词索引,并对关键词索引进行副本复制处理。
可选的,在本发明第一方面的第三种实施方式中,所述通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中,具体包括:通过API获取匹配条件,所述匹配条件包括唯一的任务ID;采用KMP算法匹配所获取的任务ID以及预设的用户ID表,以对匹配条件进行验证识别;当预设的用户ID表内存在与所获取的任务ID一致的ID时,表明通过验证识别,将匹配条件存储至MySQL数据库中。
可选的,在本发明第一方面的第四种实施方式中,所述根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果,具体包括:采用提取模型对匹配条件进行关键词提取处理,得到多个匹配关键词;
随机组合多个匹配关键词,得到多个组合条件;采用ElasticSearch引擎,逐次选取任一组合条件对基础数据进行轮询匹配;当完成多个组合条件的轮询匹配后,得到一次匹配结果。
可选的,在本发明第一方面的第五种实施方式中,所述根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果,具体包括:导入正则表达式包,根据匹配关键词,采用compile方法生成正则表达式模式;基于正则表达式模式,采用matches方法对基础数据进行匹配,得到第一匹配结果;基于正则表达式模式,采用find方法对基础数据进行匹配,得到第二匹配结果;整合第一匹配结果和第二匹配结果,得到成二次匹配结果。
可选的,在本发明第一方面的第六种实施方式中,所述整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列,具体包括:整合一次匹配结果和二次匹配结果,得到总匹配结果;关联总匹配结果和匹配任务,生成匹配文件,将匹配文件存储于MySQL数据库中;关联总匹配结果和匹配任务的任务ID,生成返回文件,通过API将返回文件返回至卡夫卡消息队列。
本发明第二方面提供了一种批量数据匹配装置,包括:获取模块,用于从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;识别模块,用于通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;第一匹配模块,用于根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;第二匹配模块,用于根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;返回模块,用于整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
可选的,在本发明第二方面的第一种实现方式中,所述获取模块包括:第一获取单元,用于配置Filebeat获取日志文件的路径,通过Filebeat从卡夫卡消息队列中采集日志数据;处理单元,用于配置logstash的服务主机和端口,采用logstash对Filebeat所采集的日志数据进行解耦和预处理,得到基础数据;第一存储单元,用于配置logstash的output为ElasticSearch,将基础数据存储至ElasticSearch引擎中。
可选的,在本发明第二方面的第二种实现方式中,所述获取模块还包括:第二获取单元,用于采用ElasticSearch引擎将基础数据所包括的文档序列化成json格式,并获取json对象;分词单元,用于采用分词模型获取json对象所包括的类型关键词,根据类型关键词生成类型索引;分片单元,用于通过Hash算法对类型索引进行分片处理,得到关键词索引,并对关键词索引进行副本复制处理。
可选的,在本发明第二方面的第三种实现方式中,所述识别模块包括:第三获取单元,用于通过API获取匹配条件,所述匹配条件包括唯一的任务ID;第一匹配单元,用于采用KMP算法匹配所获取的任务ID以及预设的用户ID表,以对匹配条件进行验证识别;识别单元,用于当预设的用户ID表内存在与所获取的任务ID一致的ID时,表明通过验证识别,将匹配条件存储至MySQL数据库中。
可选的,在本发明第二方面的第四种实现方式中,所述第一匹配模块包括:提取单元,用于采用提取模型对匹配条件进行关键词提取处理,得到多个匹配关键词;组合单元,用于随机组合多个匹配关键词,得到多个组合条件;第二匹配单元,用于采用ElasticSearch引擎,逐次选取任一组合条件对基础数据进行轮询匹配;第一整合单元,用于当完成多个组合条件的轮询匹配后,得到一次匹配结果。
可选的,在本发明第二方面的第五种实现方式中,所述第二匹配模块包括:生成单元,用于导入正则表达式包,根据匹配关键词,采用compile方法生成正则表达式模式;第三匹配单元,用于基于正则表达式模式,采用matches方法对基础数据进行匹配,得到第一匹配结果;第四匹配单元,用于基于正则表达式模式,采用find方法对基础数据进行匹配,得到第二匹配结果;第二整合单元,用于整合第一匹配结果和第二匹配结果,得到成二次匹配结果。
可选的,在本发明第二方面的第六种实现方式中,所述返回模块包括:第三整合单元,用于整合一次匹配结果和二次匹配结果,得到总匹配结果;关联单元,用于关联总匹配结果和匹配任务,生成匹配文件,将匹配文件存储于MySQL数据库中;返回单元,用于关联总匹配结果和匹配任务的任务ID,生成返回文件,通过API将返回文件返回至卡夫卡消息队列。
本发明第三方面提供了一种批量数据匹配设备,所述批量数据匹配设备包括:存储器和至少一个处理器,所述存储器中存储有指令;至少一个所述处理器调用所述存储器中的所述指令,以使得所述批量数据匹配设备执行上述任一项所述的批量数据匹配方法的各个步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述任一项所述批量数据匹配方法的各个步骤。
本发明的技术方案中,通过获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;通过API获取匹配条件,根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,并根据匹配条件采用Java对基础数据进行二次匹配,整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列;本申请公开的方法,通过API和卡夫卡消息中心配合获取匹配条件并返回匹配结果,可实现异步处理,减少API响应时间,并提高系统的吞吐量;通过ElasticSearch引擎和Java进行基础数据的匹配以获取匹配结果,具有匹配效率高、匹配准确性高的优点,大大缩短了响应时间。
附图说明
图1为本发明实施例提供的批量数据匹配方法的第一种流程图;
图2为本发明实施例提供的批量数据匹配方法的第二种流程图;
图3为本发明实施例提供的批量数据匹配方法的第三种流程图;
图4为本发明实施例提供的批量数据匹配方法的第四种流程图;
图5为本发明实施例提供的批量数据匹配方法的第五种流程图;
图6为本发明实施例提供的批量数据匹配方法的第六种流程图;
图7为本发明实施例提供的批量数据匹配装置的一种结构示意图;
图8为本发明实施例提供的批量数据匹配设备的结构示意图。
具体实施方式
本发明提供了一种批量数据匹配方法、装置、设备及存储介质,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中批量数据匹配方法的一个实施例包括:
101、从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;
在本实施例中,Kafka消息队列是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域;卡夫卡消息队列具有以下好处:
(1)系统解耦:因为采用一个中间消息处理组件,可以实现消息的生产端和消费端之间的解耦;
(2)可恢复性:kafka会将消息保存在相应的文件中,因此在系统宕机之后,还可以从文件中恢复消息数据,具备可恢复性;
(3)缓冲:消息的生产者和消息的消费者之间的速度有可能是不匹配的,通过使用消息队列可以实现穿冲的效果;
(4)异步通信:很多时候我们不需要系统马上对消息进行处理,因此通过采用异步的方式可以提升系统的运行性能;
在本实施例中,通过卡夫卡消息队列实现匹配条件的获取以及匹配结果的输出,可实现信息的异步处理,保证了大量数据获取的准确性和稳定性。
在本实施例中,所述基础数据包括订单信息、物流轨迹信息和网点信息。
102、通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;
在本实施例中,通过API获取匹配条件并传输至ElasticSearch引擎和Java进行匹配处理,可减少API的响应时间,提高系统吞吐量,实现大量计算和数据的匹配。
在本实施例中,当获取匹配条件后,将匹配条件存储至MySQL数据库,为后续分析和优化保留样本数据,实现系统的可持续发展。
103、根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;
在本实施例中,采用ElasticSearch引擎对基础数据进行一次匹配,ElasticSearch是一个分布式,高性能、高可用、可伸缩、RESTful风格的搜索和数据分析引擎;ElasticSearch引擎的所有可搜索数据的最小单元为文档,通过建立索引和实现数据的匹配,索引是具有某种相似特性的文档集合,在单个集群中,可以定义任意多个索引,一个索引下可以有一个或多个类型;Elasticsearch引擎最少需要三台服务器,其包括Master节点、Data节点和Coordinating节点;Master节点负责调配集群内索引及资源的分配,而另外两个节点会用于Data数据存储、数据检索计算,当Master节点出现故障时,子节点会选出一个替代故障的Master节点(分布式共识算法中的选举);Data节点为保存数据的节点,主要用于保存分片数据,利于数据扩展;
Coordinating节点用于接收客户端请求,将请求发送到合适的节点,并将最终把结果汇集到一起,即用于完成数据的匹配并汇集匹配结果。
104、根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;
在本实施例中,对存储的基础数据使用Elasticsearch引擎匹配后,再使用java进行剩余匹配逻辑处理,可达到充分全面匹配的目的,提高所输出的总匹配结果的准确度和可靠度。
105、整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
本申请公开了一种批量数据匹配方法,通过获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;通过API获取匹配条件,根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,并根据匹配条件采用Java对基础数据进行二次匹配,整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列;本申请公开的方法,通过API和卡夫卡消息中心配合获取匹配条件并返回匹配结果,可实现异步处理,减少API响应时间,并提高系统的吞吐量;通过ElasticSearch引擎和Java进行基础数据的匹配以获取匹配结果,具有匹配效率高、匹配准确性高的优点,大大缩短了响应时间。
请参阅图2,本发明实施例中批量数据匹配方法的第二个实施例包括:
201、配置Filebeat获取日志文件的路径,通过Filebeat从卡夫卡消息队列中采集日志数据;
202、配置logstash的服务主机和端口,采用logstash对Filebeat所采集的日志数据进行解耦和预处理,得到基础数据;
203、配置logstash的output为ElasticSearch,将基础数据存储至ElasticSearch引擎中;
在本实施例中,当需要通过filebeat采集日志到logstash,再将所采集的数据输送到ElasticSearch引擎时,需要先安装logstash,安装完后在logstash的安装目录下新建vi filebeat-pipeline.conf,并将logstash的input配置为通过5044端口接收beats的数据,将logstash的output配置为输出到elasticsearch;而后在filebeat的安装目录找到filebeat.yml配置获取日志文件的路径及输出到logstash的配置,具体的,将output.elasticsearch的配置屏蔽,配置output.logstash,配置正确的logstash的服务主机和端口;当启动filebeat进行日志数据采集,即可在ElasticSearch引擎中看到相应的日志数据。
请参阅图2,本发明实施例中批量数据匹配方法的第三个实施例包括:
204、采用ElasticSearch引擎将基础数据所包括的文档序列化成json格式,并获取json对象;
在本实施例中,ElasticSearch引擎是面向文档的,文档在ElasticSearch引擎会被序列化成json格式,而json对象是由字段组成,每个字段都有自己的类型(字符串、数值、布尔、二进制、日期范围类型)。
205、采用分词模型获取json对象所包括的类型关键词,根据类型关键词生成类型索引;
在本实施例中,所述分词模型基于中文分词算法实现训练,具体的,采用正向最大匹配法对名称进行分词处理;正向最大匹配法(FMM)为基于词表的分词算法,对于输入的下发信息文本序列从左至右,以贪心的算法切分出当前位置上长度最大的词,首先设置词库word_dict和一个待分词的字符串s,计算得到词库中最长词语的长度假设为m,从字符串第一个位置开始,选择一个最大长度的词长片段,如果该字符串的长度不足最大词长,则选择该全部字符串;判断选择出来的字符串片段是否在词库中,若在,则将此词分离出来,若不在,则从右边开始,逐一减少一个字符,直到这个片段存在在词典中结束,或者以只剩下最后一个字结束;通过正向最大匹配法,可得到多个类型关键词,根据类型关键词生成类型索引。
206、通过Hash算法对类型索引进行分片处理,得到关键词索引,并对关键词索引进行副本复制处理;
在本实施例中,由于ElasticSearch引擎里面的索引可能存储大量数据,这些数据可能会超出单个节点的硬件限制,为了解决这个问题,ElasticSearch引擎提供了将索引细分为多个碎片的功能,这就是分片;通过分片技术,可以水平拆分数据量,同时分片支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量;ElasticSearch引擎可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明。
在本实施例中,通过Hash算法实现类型索引的分片处理,Hash算法是一种将任意长度的输入数据映射为固定长度的输出数据的算法,其常用的方法是使用哈希表来存储映射结果;哈希表是一种以键值对形式存储数据的数据结构,通过将输入数据的哈希值作为键,将输出数据作为值,可以快速地进行数据查询和插入操作。在哈希表中,每个键值对被存储在不同的位置上,从而实现了数据的均匀分布以及读写性能的线性提升。
在本实施例中,当完成类型索引的分片处理后,对关键词索引进行副本复制处理,当分片或者节点发生故障时提供高可用性,且由于ElasticSearch引擎可以在所有副本上并行执行搜索,提高了扩展搜索量和吞吐量;进一步地,由于副本分片可以修改,提高了关键词索引使用时的灵活度。
请参阅图3,本发明实施例中批量数据匹配方法的第四个实施例包括:
301、通过API获取匹配条件,所述匹配条件包括唯一的任务ID;
302、采用KMP算法匹配所获取的任务ID以及预设的用户ID表,以对匹配条件进行验证识别;
在本实施例中,采用KMP算法实现任务ID与预设的用户ID表的匹配,所述预设的用户ID表内设置有多个用户名称以及与用户名称对应的用户ID和ID密码,所述任务ID用于确认发起匹配请求的用户的ID信息,所述匹配请求包括匹配条件;KMP算法的基本思想为:从主串test和模式串pattern的第一个字符开始,将两字符串的字符一一比对,如果出现某个字符不匹配,主串回溯到第二个字符,子串回溯到第一个字符再进行一一比对,如果出现某个字符不匹配,主串回溯到第三个字符,子串回溯到第一个字符再进行一一比对,循环一直到子串字符全部匹配成功,即完成任务ID和预设的用户ID表的匹配。
303、当预设的用户ID表内存在与所获取的任务ID一致的ID时,表明通过验证识别,将匹配条件存储至MySQL数据库中;
在本实施例中,当预设的用户ID表内不存在与所获取的任务ID一致的ID时,表明验证识别不通过,返回告警指令;所述告警指令可以是告警弹窗,所述告警弹窗内展示预设的告警文案,所述告警文案可以是“接收匹配条件失败”。
请参阅图4,本发明实施例中批量数据匹配方法的第五个实施例包括:
401、采用提取模型对匹配条件进行关键词提取处理,得到多个匹配关键词;
关键词是指能反映文本主题或者主要内容的词语,在信息检索中,准确的关键词提取可以大幅提升效率;在本实施例中,所述提取模型基于TF-IDF算法进行关键词提取,TF-IDF算法的基本思想为:词的重要性与它在文件中出现的次数成正比,但同时会随着它在语料库中出现的频率成反比,即如果某个词或者短语在一个文档中出现多次,但是在其他文档中很少出现,就可以认为这个词或短语具有很好的区分性,适合用来对文档进行分类;TF-IDF=TF*IDF,其中TF表示一个词在文档中出现的次数,DF表示整个语料库中含有某个词的文档个数;IDF为逆文档频率,其计算公式为:IDF=log(语料库中文档总数/(包含该词的文档数+1)),+1的作用是做平滑处理。
402、随机组合多个匹配关键词,得到多个组合条件;
403、采用ElasticSearch引擎,逐次选取任一组合条件对基础数据进行轮询匹配;
404、当完成多个组合条件的轮询匹配后,得到一次匹配结果;
举例说明,比如匹配条件为“获取运单号为123开头的数据”,则会根据“运单号”关键字,查找Elasticsearch存储的、对应的内容为“123”开头的所有基础数据;Elasticsearch引擎会根据约定好的匹配条件,设置多个关键词,通过多个关键词组合的形式获得一次匹配结果。
在本实施例中,Elasticsearch底层全文检索使用的是Lucene引擎。
请参阅图5,本发明实施例中批量数据匹配方法的第六个实施例包括:
501、导入正则表达式包,根据匹配关键词,采用compile方法生成正则表达式模式;
Java实现关键词匹配最常用的方式是基于正则表达式,这种方式可以基于一些简单的字符模式来匹配或查找字符串中的子串,非常方便实用;在实际工作过程中,通过import java.util.regex.*来导入正则表达式相关的包;当需要对一个字符串进行正则匹配时,首先需要生成一个正则表达式模式,可以使用Pattern类的compile()方法来创建正则表达式模式,当需要搜索多个匹配模式时,可以使用OR(alternation)运算符,通过OR运算符指定不同的匹配项,这些匹配项可以是文本字符串也可以是表达式集,通过单引号将正则表达式括起来;所述正则表达式模式可以是任一匹配关键词#[wid]+[\swd]*基础数据所包括的字段;上述正则表达式使用了元字符#、w、d、+、*和\s;其中#表示匹配井号字符,w和d分别表示匹配任意字母或数字字符,+表示匹配一个或多个前面的字符或字符组合,*表示匹配零个或多个字符或字符组合,\s表示匹配空格符或制表符等空白字符。
502、基于正则表达式模式,采用matches方法对基础数据进行匹配,得到第一匹配结果;
在本实施例中,可以使用Matcher类的matches()方法匹配整个字符串,只有整个字符串完全匹配正则表达式时才返回true。
503、基于正则表达式模式,采用find方法对基础数据进行匹配,得到第二匹配结果;
在本实施例中,可以使用find()方法进一步匹配基础数据,find()方法可以在字符串中查找匹配正则表达式的子串,find()方法是一个重载的方法,可以使用while循环与find()方法来查找所有的匹配。
504、整合第一匹配结果和第二匹配结果,得到成二次匹配结果;
在本实施例中,通过采用两种方法实现Java的正则表达式匹配,确保输出的二次匹配结果的覆盖全面,提高所输出的匹配结果的准确性和可靠性。
请参阅图6,本发明实施例中批量数据匹配方法的第七个实施例包括:
601、整合一次匹配结果和二次匹配结果,得到总匹配结果;
602、关联总匹配结果和匹配任务,生成匹配文件,将匹配文件存储于MySQL数据库中;
在本实施例中,将关联后的匹配结果和匹配任务存储于MySQL数据库,为后续的逻辑分析和优化保留足够的样本数据,保证后续优化有据可依,提高数据管理的规范度。
603、关联总匹配结果和匹配任务的任务ID,生成返回文件,通过API将返回文件返回至卡夫卡消息队列;
在本实施例中,所反馈的匹配结果与匹配任务所包括的唯一的任务ID相关联,可保证匹配任务和匹配结果能一一对应,确保数据的匹配度,提高用户的使用体验。
上面对本发明实施例中批量数据匹配方法进行了描述,下面对本发明实施例中批量数据匹配装置进行描述,请参阅图7,本发明实施例中批量数据匹配装置的一个实施例包括:
获取模块701,用于从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;识别模块702,用于通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;第一匹配模块703,用于根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;第二匹配模块704,用于根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;返回模块705,用于整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
在本实施例中,所述获取模块701包括:第一获取单元7011,用于配置Filebeat获取日志文件的路径,通过Filebeat从卡夫卡消息队列中采集日志数据;处理单元7012,用于配置logstash的服务主机和端口,采用logstash对Filebeat所采集的日志数据进行解耦和预处理,得到基础数据;第一存储单元7013,用于配置logstash的output为ElasticSearch,将基础数据存储至ElasticSearch引擎中。
在本实施例中,所述获取模块701还包括:第二获取单元7014,用于采用ElasticSearch引擎将基础数据所包括的文档序列化成json格式,并获取json对象;分词单元7015,用于采用分词模型获取json对象所包括的类型关键词,根据类型关键词生成类型索引;分片单元7016,用于通过Hash算法对类型索引进行分片处理,得到关键词索引,并对关键词索引进行副本复制处理。
在本实施例中,所述识别模块702包括:第三获取单元7021,用于通过API获取匹配条件,所述匹配条件包括唯一的任务ID;第一匹配单元7022,用于采用KMP算法匹配所获取的任务ID以及预设的用户ID表,以对匹配条件进行验证识别;识别单元7023,用于当预设的用户ID表内存在与所获取的任务ID一致的ID时,表明通过验证识别,将匹配条件存储至MySQL数据库中。
在本实施例中,所述第一匹配模块703包括:提取单元7031,用于采用提取模型对匹配条件进行关键词提取处理,得到多个匹配关键词;组合单元7032,用于随机组合多个匹配关键词,得到多个组合条件;第二匹配单元7033,用于采用ElasticSearch引擎,逐次选取任一组合条件对基础数据进行轮询匹配;第一整合单元7034,用于当完成多个组合条件的轮询匹配后,得到一次匹配结果。
在本实施例中,所述第二匹配模块704包括:生成单元7041,用于导入正则表达式包,根据匹配关键词,采用compile方法生成正则表达式模式;第三匹配单元7042,用于基于正则表达式模式,采用matches方法对基础数据进行匹配,得到第一匹配结果;第四匹配单元7043,用于基于正则表达式模式,采用find方法对基础数据进行匹配,得到第二匹配结果;第二整合单元7044,用于整合第一匹配结果和第二匹配结果,得到成二次匹配结果。
在本实施例中,所述返回模块705包括:第三整合单元7051,用于整合一次匹配结果和二次匹配结果,得到总匹配结果;关联单元7052,用于关联总匹配结果和匹配任务,生成匹配文件,将匹配文件存储于MySQL数据库中;返回单元7053,用于关联总匹配结果和匹配任务的任务ID,生成返回文件,通过API将返回文件返回至卡夫卡消息队列。
上面图7从模块化功能实体的角度对本发明实施例中的批量数据匹配装置进行详细描述,下面从硬件处理的角度对本发明实施例中批量数据匹配设备进行详细描述。
图8是本发明实施例提供的一种批量数据匹配设备的结构示意图,该批量数据匹配设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对批量数据匹配设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在批量数据匹配设备800上执行存储介质830中的一系列指令操作,以实现上述各方法实施例提供的批量数据匹配方法的步骤。
批量数据匹配设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,本申请示出的批量数据匹配设备结构并不构成对基于批量数据匹配设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行批量数据匹配方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种批量数据匹配方法,其特征在于,包括:
从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,
ElasticSearch引擎根据基础数据生成关键词索引;
通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;
根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;
根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;
整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
2.根据权利要求1所述的一种批量数据匹配方法,其特征在于,所述从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,具体包括:
配置Filebeat获取日志文件的路径,通过Filebeat从卡夫卡消息队列中采集日志数据;
配置logstash的服务主机和端口,采用logstash对Filebeat所采集的日志数据进行解耦和预处理,得到基础数据;
配置logstash的output为ElasticSearch,将基础数据存储至ElasticSearch引擎中。
3.根据权利要求1所述的一种批量数据匹配方法,其特征在于,所述ElasticSearch引擎根据基础数据生成关键词索引,具体包括:
采用ElasticSearch引擎将基础数据所包括的文档序列化成json格式,并获取json对象;
采用分词模型获取json对象所包括的类型关键词,根据类型关键词生成类型索引;
通过Hash算法对类型索引进行分片处理,得到关键词索引,并对关键词索引进行副本复制处理。
4.根据权利要求1所述的一种批量数据匹配方法,其特征在于,所述通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中,具体包括:
通过API获取匹配条件,所述匹配条件包括唯一的任务ID;
采用KMP算法匹配所获取的任务ID以及预设的用户ID表,以对匹配条件进行验证识别;
当预设的用户ID表内存在与所获取的任务ID一致的ID时,表明通过验证识别,将匹配条件存储至MySQL数据库中。
5.根据权利要求1所述的一种批量数据匹配方法,其特征在于,所述根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果,具体包括:
采用提取模型对匹配条件进行关键词提取处理,得到多个匹配关键词;
随机组合多个匹配关键词,得到多个组合条件;
采用ElasticSearch引擎,逐次选取任一组合条件对基础数据进行轮询匹配;
当完成多个组合条件的轮询匹配后,得到一次匹配结果。
6.根据权利要求5所述的一种批量数据匹配方法,其特征在于,所述根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果,具体包括:
导入正则表达式包,根据匹配关键词,采用compile方法生成正则表达式模式;
基于正则表达式模式,采用matches方法对基础数据进行匹配,得到第一匹配结果;
基于正则表达式模式,采用find方法对基础数据进行匹配,得到第二匹配结果;
整合第一匹配结果和第二匹配结果,得到成二次匹配结果。
7.根据权利要求1所述的一种批量数据匹配方法,其特征在于,所述整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列,具体包括:
整合一次匹配结果和二次匹配结果,得到总匹配结果;
关联总匹配结果和匹配任务,生成匹配文件,将匹配文件存储于MySQL数据库中;
关联总匹配结果和匹配任务的任务ID,生成返回文件,通过API将返回文件返回至卡夫卡消息队列。
8.一种批量数据匹配装置,其特征在于,包括:
获取模块,用于从卡夫卡消息队列中获取基础数据并存储至ElasticSearch引擎中,ElasticSearch引擎根据基础数据生成关键词索引;
识别模块,用于通过API获取匹配条件并对所获取的匹配条件进行验证识别,将通过验证识别的匹配条件存储至MySQL数据库中;
第一匹配模块,用于根据匹配条件采用ElasticSearch引擎对基础数据进行一次匹配,得到一次匹配结果;
第二匹配模块,用于根据匹配条件采用Java对基础数据进行二次匹配,得到二次匹配结果;
返回模块,用于整合一次匹配结果和二次匹配结果,得到总匹配结果,并通过API将总匹配结果返回至卡夫卡消息队列。
9.一种批量数据匹配设备,其特征在于,所述批量数据匹配设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
至少一个所述处理器调用所述存储器中的所述指令,以使得所述批量数据匹配设备执行如权利要求1-7中任一项所述的批量数据匹配方法的各个步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述批量数据匹配方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311059286.6A CN117112637A (zh) | 2023-08-21 | 2023-08-21 | 批量数据匹配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311059286.6A CN117112637A (zh) | 2023-08-21 | 2023-08-21 | 批量数据匹配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117112637A true CN117112637A (zh) | 2023-11-24 |
Family
ID=88794147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311059286.6A Pending CN117112637A (zh) | 2023-08-21 | 2023-08-21 | 批量数据匹配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112637A (zh) |
-
2023
- 2023-08-21 CN CN202311059286.6A patent/CN117112637A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Su et al. | Information resources processing using linguistic analysis of textual content | |
US10579661B2 (en) | System and method for machine learning and classifying data | |
WO2019091026A1 (zh) | 知识库文档快速检索方法、应用服务器及计算机可读存储介质 | |
Asian et al. | Stemming indonesian | |
Pereira et al. | Using web information for author name disambiguation | |
US8533203B2 (en) | Identifying synonyms of entities using a document collection | |
US20170161375A1 (en) | Clustering documents based on textual content | |
US8316292B1 (en) | Identifying multiple versions of documents | |
US9305083B2 (en) | Author disambiguation | |
US20170322930A1 (en) | Document based query and information retrieval systems and methods | |
US9984166B2 (en) | Systems and methods of de-duplicating similar news feed items | |
US10372718B2 (en) | Systems and methods for enterprise data search and analysis | |
US10915543B2 (en) | Systems and methods for enterprise data search and analysis | |
EP2013788A2 (en) | Full text query and search systems and method of use | |
CN112231555B (zh) | 基于用户画像标签的召回方法、装置、设备及存储介质 | |
Cheng et al. | Supporting entity search: a large-scale prototype search engine | |
CN113297238A (zh) | 基于历史变更记录进行信息挖掘的方法和装置 | |
US8918383B2 (en) | Vector space lightweight directory access protocol data search | |
Chunyong et al. | Log parser with one-to-one markup | |
CN117112637A (zh) | 批量数据匹配方法、装置、设备及存储介质 | |
DK178764B1 (en) | A computer-implemented method for carrying out a search without the use of signatures | |
CN113254623A (zh) | 数据处理方法、装置、服务器、介质及产品 | |
CN112650951A (zh) | 一种企业相似度匹配方法、系统和计算装置 | |
US9483553B2 (en) | System and method for identifying related elements with respect to a query in a repository | |
US20230334231A1 (en) | Labeled clustering preprocessing for natural language processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |