基于全文检索数据库的日志检索方法及系统
文献发布时间:2023-06-19 12:27:31
技术领域
本发明涉及数据处理领域,具体地说是一种基于全文检索数据库的日志检索方法及系统。
背景技术
随着计算机技术的飞速发展,业务应用系统的日志有了越来越高的要求。在系统使用过程中,为了便于对用户操作进行审计以及对异常数据变动进行筛查,在项目建设过程中,通常会设计开发对应的日志服务,对用户操作、系统更改、数据变动等一系列的情况进行日志记录及展示。而传统的日志服务通常是通过数据库存储的方式,构建对应的日志表,并通过指定日志信息字段的方式对日志进行记录;且基于日志的检索查询功能等,都需要进行单独的开发。
这种传统的开发模式,存在弊端,具体如下:
①、在记录日志的方式上,针对大数据量日志的场景下,传统数据库的方式会生成巨大的数据文件,占用大量的磁盘存储空间,管理不便,且数据量较大的情况下,基于数据库的日志检索性能较差,全文检索用户体验不佳;
②、在日志检索查询方面,需要根据具体存储的日志信息及数据类型进行定制开发。
综上所述,如何克服传统关系型数据库存储全文检索技术弱、存储日志读写慢以及业务应用系统日志无法集中管理的缺点是目前亟待解决的问题。
发明内容
本发明的技术任务是提供一种基于全文检索数据库的日志检索方法及系统,来解决传统关系型数据库存储全文检索技术弱、存储日志读写慢以及业务应用系统日志无法集中管理的问题。
本发明的技术任务是按以下方式实现的,一种基于全文检索数据库的日志检索方法,该方法是通过全文检索数据库存储业务系统写入的日志,并向业务系统提供日志写入服务,完成与业务系统日志的对接;再通过日志检索服务读取全文检索数据库中的数据,完成日志的全文检索查询,实现日志写入与日志读取的分离。
作为优选,该方法具体如下:
S1、业务系统产生日志时,调用日志写入接口,将日志写入日志写入服务;
S2、日志写入服务将接收到的日志存储到全文检索数据库,全文检索数据库对日志数据进行处理,进而完成日志的存储入库;
S3、用户输入查询条件,对日志进行过滤查询,调用日志检索服务,日志检索服务组装检索条件并调用全文检索数据库查询接口查询数据,进行日志查询;
S4、日志检索服务将查询结果拼装呈响应数据结果集,返回给用户或客户端,实现对业务系统日志的检索查询。
更优地,所述步骤S1中日志的字段包括日志类型(logType)、应用编码(appCode)、应用名称(appName)、日志地点(remoteIp)、日志级别(logLevel)、日志主题(subject)、日志内容(content)、操作标识(operatorId)、操作姓名(operatorName)及操作时间(createTime)。
更优地,所述步骤S2中日志数据包括两类,具体如下:
①、无需处理的日志数据:包括日志类型、应用编码、应用名称、日志地点、日志级别、操作标识、操作姓名及操作时间;无需处理的日志数据直接存储到全文检索数据库;
②、需要处理的日志数据:包括日志主题及日志内容;需要处理的日志数据采用分词组件进行分词处理后,存储到全文检索数据库。
更优地,所述分词组件采用开源的轻量级的中文分词工具包。
更优地,分词处理过程具体如下:
(1)、业务系统输入文本到字符过滤器,字符过滤器通过添加、删除或更改字符来转换原始字符流后,字符过滤器输出字符流;
(2)、字符过滤器将字符流输入到分词器,分词器将文件拆分成单个单词并输出单词流;
(3)、分词器将单词流输入到单词过滤器,经过添加、删除或更改单词,完成分词处理,并将日志数据储到全文检索数据库中。
更优地,所述步骤S3中查询条件包括两类,具体如下:
①、精确查询条件:包括发生时间、日志类型、应用编码;
②、模糊查询条件:包括日志标题及日志内容;
模糊查询条件采用全文检索数据库内部的已建立的存储结构及查询算法进行数据的检索;
精准查询条件和模糊查询条件内部之间均是并且关系;
查询采用分页的方式查询,默认查询结果条数为10条,防止数据量过大导致应用内存溢出。
一种基于全文检索数据库的日志检索系统,该系统包括,
写入模块,用于业务系统产生日志时,调用日志写入接口,将日志写入日志写入服务;
存储模块,用于日志写入服务将接收到的日志存储到全文检索数据库,全文检索数据库对日志数据进行处理,进而完成日志的存储入库;
查询模块,用于用户输入查询条件,对日志进行过滤查询,调用日志检索服务,日志检索服务组装检索条件并调用全文检索数据库查询接口查询数据,进行日志查询;
响应模块,用于日志检索服务将查询结果拼装呈响应数据结果集,返回给用户或客户端,实现对业务系统日志的检索查询。
作为优选,所述存储模块包括分词组件,分词组件采用开源的轻量级的中文分词工具包;
其中,分词组件的工作理过程具体如下:
(1)、业务系统输入文本到字符过滤器,字符过滤器通过添加、删除或更改字符来转换原始字符流后,字符过滤器输出字符流;
(2)、字符过滤器将字符流输入到分词器,分词器将文件拆分成单个单词并输出单词流;
(3)、分词器将单词流输入到单词过滤器,经过添加、删除或更改单词,完成分词处理,并将日志数据储到全文检索数据库中。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至7中任一项所述的基于全文检索数据库的日志检索方法。
本发明的基于全文检索数据库的日志检索方法及系统具有以下优点:
(一)、本发明通过全文检索数据库来存储业务系统写入的日志,向业务系统提供数据写入服务,实现对接业务系统的日志;同时通过日志检索服务,读取全文检索数据库中的数据,完成对日志的全文检索查询,实现了日志写入与日志读取的分离,解决了日志量大时的读写压力;
(二)本发明解决了关系型数据库存储日志读写慢的问题,采用全文检索数据库替代关系型数据库进行日志读写,读写速度快,效率高,用户体验更好;
(三)本发明解决了业务应用系统日志无法集中管理的问题,支持日志集中化存储在全文检索数据库,减少占用的磁盘空间且便于归档、备份;
(四)本发明解决了传统关系型数据库存储全文检索技术弱的问题,支持日志主题及日志内容全文检索,检索查询条件丰富,提高了用户体验;
(五)本发明相对于各业务系统内独立的日志存储和检索系统方便管理和检索,统一了日志管理和日志检索入口。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于全文检索数据库的日志检索方法的流程框图;
附图2为分词处理的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于全文检索数据库的日志检索方法及系统作以下详细地说明。
实施例1:
本发明的基于全文检索数据库的日志检索方法,该方法是通过全文检索数据库存储业务系统写入的日志,并向业务系统提供日志写入服务,完成与业务系统日志的对接;再通过日志检索服务读取全文检索数据库中的数据,完成日志的全文检索查询,实现日志写入与日志读取的分离;如附图1所示,具体如下:
S1、业务系统(业务系统A、业务系统B等)产生日志时,调用日志写入接口,将日志写入日志写入服务;
S2、日志写入服务将接收到的日志存储到全文检索数据库,全文检索数据库对日志数据进行处理,进而完成日志的存储入库;
S3、用户输入查询条件,对日志进行过滤查询,调用日志检索服务,日志检索服务组装检索条件并调用全文检索数据库查询接口查询数据,进行日志查询;
S4、日志检索服务将查询结果拼装呈响应数据结果集,返回给用户或客户端,实现对业务系统日志的检索查询。
本实施例中步骤S1中日志的字段包括日志类型(logType)、应用编码(appCode)、应用名称(appName)、日志地点(remoteIp)、日志级别(logLevel)、日志主题(subject)、日志内容(content)、操作标识(operatorId)、操作姓名(operatorName)及操作时间(createTime);日志写入格式约束如下表所示:
本实施例中步骤S2中日志数据包括两类,具体如下:
①、无需处理的日志数据:包括日志类型、应用编码、应用名称、日志地点、日志级别、操作标识、操作姓名及操作时间;无需处理的日志数据直接存储到全文检索数据库;
②、需要处理的日志数据:包括日志主题及日志内容;需要处理的日志数据采用分词组件进行分词处理后,存储到全文检索数据库。
本实施例中分词组件采用开源的轻量级的中文分词工具包。
如附图2所示,本实施例中分词处理过程具体如下:
(1)、业务系统输入文本到字符过滤器,字符过滤器通过添加、删除或更改字符来转换原始字符流后,字符过滤器输出字符流;
(2)、字符过滤器将字符流输入到分词器,分词器将文件拆分成单个单词并输出单词流;
(3)、分词器将单词流输入到单词过滤器,经过添加、删除或更改单词,完成分词处理,并将日志数据储到全文检索数据库中。
其中,全文检索数据库日志存储的数据结构如下:
本实施例中步骤S3中查询条件包括两类,具体如下:
①、精确查询条件:包括发生时间、日志类型、应用编码;
②、模糊查询条件:包括日志标题及日志内容;
模糊查询条件采用全文检索数据库内部的已建立的存储结构及查询算法进行数据的检索;
精准查询条件和模糊查询条件内部之间均是并且关系;
查询采用分页的方式查询,默认查询结果条数为10条,防止数据量过大导致应用内存溢出。
数据库检索结果与数据库存储结构采用驼峰转换的命名方式映射,映射关系如下:
响应数据结构如下:
数据结构说明:
data:查询结果数据集,数组格式,具体字段含义参考映射关系表;
total:查询结果数据集总条数,数据类型正整数,默认为0。
本发明可在各类业务应用系统中使用,特别在大中型项目中具备更大优势,业务应用系统可以通过统一日志写入接口,集中存储日志和统一检索入口。
实施例2:
本发明基于全文检索数据库的日志检索系统,该系统包括,
写入模块,用于业务系统产生日志时,调用日志写入接口,将日志写入日志写入服务;
存储模块,用于日志写入服务将接收到的日志存储到全文检索数据库,全文检索数据库对日志数据进行处理,进而完成日志的存储入库;
查询模块,用于用户输入查询条件,对日志进行过滤查询,调用日志检索服务,日志检索服务组装检索条件并调用全文检索数据库查询接口查询数据,进行日志查询;
响应模块,用于日志检索服务将查询结果拼装呈响应数据结果集,返回给用户或客户端,实现对业务系统日志的检索查询。
本实施例中存储模块包括分词组件,分词组件采用开源的轻量级的中文分词工具包;
其中,分词组件的工作理过程具体如下:
(1)、业务系统输入文本到字符过滤器,字符过滤器通过添加、删除或更改字符来转换原始字符流后,字符过滤器输出字符流;
(2)、字符过滤器将字符流输入到分词器,分词器将文件拆分成单个单词并输出单词流;
(3)、分词器将单词流输入到单词过滤器,经过添加、删除或更改单词,完成分词处理,并将日志数据储到全文检索数据库中。
实施例3:
本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的基于全文检索数据库的日志检索方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RYM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 基于全文检索数据库的日志检索方法及系统
- 基于配置管理数据库的全文检索方法、装置与电子设备