CN111813744A - 文件的搜索方法、装置、设备及存储介质 - Google Patents

文件的搜索方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111813744A
CN111813744A CN202010660001.4A CN202010660001A CN111813744A CN 111813744 A CN111813744 A CN 111813744A CN 202010660001 A CN202010660001 A CN 202010660001A CN 111813744 A CN111813744 A CN 111813744A
Authority
CN
China
Prior art keywords
information
key
file
search
searching
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
Application number
CN202010660001.4A
Other languages
English (en)
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010660001.4A priority Critical patent/CN111813744A/zh
Publication of CN111813744A publication Critical patent/CN111813744A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及文件搜索技术领域,主要涉及区块链技术,揭露了一种文件的搜索方法、装置、设备及存储介质,所述方法包括:获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;根据所述预设关键字信息确定所述搜索请求信息的类别信息;根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息;将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;将查找到的值作为搜索结果,从而实现文件的搜索,从而通过本地的预设索引集合,无需通过部署数据库相关的服务即可得到搜索结果,提高文件的搜索效率。

Description

文件的搜索方法、装置、设备及存储介质
技术领域
本发明涉及文件搜索技术领域,尤其涉及一种文件的搜索方法、装置、设备及存储介质。
背景技术
目前,为了实现文件搜索功能,传统方案主要有两种:基于纯文本文件的搜索和基于(关系型或非关系型)数据库的搜索。其中基于纯文本文件的搜索方案是最直观的,因为这种海量标签搜索的需求中,往往数据规模不会特别大,一般带有10000行标注数据的文本文件大概只有3MB不到的大小,每次要进行标签搜索的时候再打开这个标签文件,读取内容再进行搜索的性能损耗都不算大,然后进行逐行读取匹配;另一个方案是基于数据库的搜索,就是把标签文件的数据全部导入到数据库内,当有搜索请求的时候,直接拼装查询语句进行搜索。
对于基于纯文本文件的搜索的方案,最大的缺陷在于每次搜索都要重新把标签文件打开并读取,然后才能进行搜索,而搜索的过程也是一个没有优化的处理方案,每次都要对标签文件里的每一行进行搜索并匹配,效率较低;基于数据库的搜索方案效率会对比纯文本搜索要高,只需一次导入,后续每次搜索都可以直接利用数据库自带的搜索方案,但其缺陷也比较明显,需要为这个体量不大的标签数据集合额外部署数据库相关的服务,而且每次标签文件有更新,都要重新执行一次导入数据的操作。
发明内容
本发明的主要目的在于提出一种文件的搜索方法、装置、设备及存储介质,旨在提高文件的搜索效率。
为实现上述目的,本发明提供一种文件的搜索方法,所述文件的搜索方法包括以下步骤:
获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;
根据所述预设关键字信息确定所述搜索请求信息的类别信息;
根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中;
将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;
将查找到的值作为搜索结果,从而实现文件的搜索。
可选地,所述预设索引集合包括文件索引;
所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
在所述类别信息为文件类别信息时,获取所述预设索引集合中的文件索引;
所述根据所述类别信息访问本地的预设索引集合,包括:
根据所述文件类别信息访问本地的文件索引。
可选地,所述预设索引集合包括标签索引;
所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
在所述类别信息为标签类别信息时,获取所述预设索引集合中的标签索引;
所述根据所述类别信息访问本地的预设索引集合,包括:
根据所述标签类别信息访问本地的标签索引。
可选地,所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
建立预设字典变量,所述预设字典变量包括键变量信息以及对应的值变量信息;
获取历史关键字信息以及对应的历史值信息;
将所述历史关键字信息填入所述键变量信息,将所述历史值信息填入所述值变量信息;
根据填入的键变量信息与填入的值变量信息生成键值对信息;
获取所述历史关键字信息的类别信息,根据所述类别信息和键值对信息生成预设索引集合,并保存在本地。
可选地,所述将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值,包括:
将所述预设关键字信息作为键信息,判断所述键值对信息中是否存有所述键信息;
在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值。
可选地,所述在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值,包括:
在所述键值对信息存有所述键信息时,获取所述键信息对应的目标值信息;
判断所述键值对信息中是否存有所述目标值信息;
在所述键值对信息中存有所述目标值信息时,根据所述键信息从所述键值对信息中查找对应的值。
可选地,所述将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值,包括:
判断所述预设关键字信息是否为标签查询信息;
在所述预设关键字信息为标签查询信息时,确定所述标签查询信息中各个标签对应的优先级信息;
根据所述键信息以及对应的优先级信息从所述键值对信息中查找对应的值。
此外,为实现上述目的,本发明还提出一种文件的搜索设备,所述文件的搜索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件的搜索程序,所述文件的搜索程序配置为实现如上文所述的文件的搜索方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有文件的搜索程序,所述文件的搜索程序被处理器执行时实现如上文所述的文件的搜索方法的步骤。
此外,为实现上述目的,本发明还提出一种文件的搜索装置,所述文件的搜索装置包括:
获取模块,用于获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;
确定模块,用于根据所述预设关键字信息确定所述搜索请求信息的类别信息;
访问模块,用于根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中;
查找模块,用于将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;
搜索模块,用于将查找到的值作为搜索结果,从而实现文件的搜索。
本发明提出的文件的搜索方法,通过获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;根据所述预设关键字信息确定所述搜索请求信息的类别信息;根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息;将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;将查找到的值作为搜索结果,从而实现文件的搜索,从而通过本地的预设索引集合,无需通过额外部署第三方数据库相关的服务即可得到搜索结果,提高文件的搜索效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明文件的搜索方法第一实施例的流程示意图;
图3为本发明文件的搜索方法一实施例的搜索阶段的整体流程框架示意图;
图4为本发明文件的搜索方法第二实施例的流程示意图;
图5为本发明文件的搜索方法第三实施例的流程示意图;
图6为本发明文件的搜索方法一实施例的初始化阶段的整体流程框架示意图;
图7为本发明文件的搜索装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文件的搜索程序。
在图1所示的设备中,网络接口1004主要用于连接外网,与其它网络设备进行数据通信;用户接口1003主要用于连接用户设备,与设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的文件的搜索程序,并执行本发明实施例提供的文件的搜索的实施方法。
基于上述硬件结构,提出本发明文件的搜索方法实施例。
参照图2,图2为本发明文件的搜索方法第一实施例的流程示意图。背景技术,研发过程中并非传统基于浏览器的搜索
在第一实施例中,所述文件的搜索方法包括以下步骤:
步骤S10,获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息。
需要说明的是,本实施例的执行主体可为文件的搜索装置,例如具有搜索功能的客户端等,还可为具有搜索功能的客户端,本实施例对此不作限制,在本实施例中,以具有搜索功能的客户端为例进行说明。
可以理解的是,本实施例主要应用于研发项目阶段的文件搜索,在一般情况下,对文件或者数据的标签信息的搜索需求在很多日常开发项目中都会经常碰到,而标签信息搜索主要用于解决当项目有海量已标注好的数据时,如何快速精准地提取出带有目标标签信息的数据,也就是如何在海量标签里搜索筛选出符合预期的文件或数据,主要包括通过文件ID或者标签信息进行搜索,然后进一步为项目开发服务,但这与传统的搜索引擎如谷歌、百度等有不一样,因为谷歌百度往往都是基于用户输入进行模糊查找,很多情况下只能返回的相似的搜索结果,而面向标签的搜索往往需要精准的定位,而不是模糊匹配,除了标签搜索匹配之外,因此,本申请可在研发过程中进行搜索服务,得到准确地搜索结果。
在本实施例中,所述搜索请求信息可为通过研发搜索界面发起的搜索请求,还可为通过其他形式发起的搜索请求,本实施例对此不作限制,其中,所述预设关键字信息可为文件ID信息,还可为标签信息,本实施例对此不作限制,即既可以通过文件ID信息进行项目开发过程中的文件搜索,还可通过标签信息进行文件搜索,即实现双索引检索,还可通过其他形式的检索,本实施例对此不作限制,本实施例主要基于文件ID信息或标签信息进行检索为例进行说明。
步骤S20,根据所述预设关键字信息确定所述搜索请求信息的类别信息。
在本实施例中,通过预设关键字信息确定所述搜索请求信息的类别信息,例如在预设关键字信息为文件ID信息时,则可得到类别信息为基于文件ID的搜索,在在预设关键字信息为标签信息时,则可得到类别信息为基于标签的搜索,由于本实施例中预设索引集合中存有基于文件ID信息索引以及基于标签信息索引,从而可通过类别信息从预设索引集合中查找对应的索引进行文件搜索,从而提高搜索的准确性。
在具体实现中,可对预设关键字信息进行识别,根据预设关键字信息在类别信息映射比表中进行查找,类别信息映射比表存有关键字信息与类别信息的对应关系,根据预设关键字信息查找类别信息映射比表中的关键字信息,从而根据查找到的关键字信息得到对应的类别信息,从而实现类别信息的识别。
还可提供另一方式进行索引的确定,即获取搜索请求,在获取搜索请求时提供选择方式,通过获取用户选择的搜索方式从而确定的索引进行搜索,例如用户通过搜索界面选择搜索方式,然后通过用户输入的关键字以及选择的搜索方式进行搜索,还可通过获取用户的关键字,然后再获取用户选择的搜索方式进行文件搜索,本实施例对此不作限制。
步骤S30,根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中。
需要说明的是,一般情况下通过数据库进行搜索可大大提高搜索效率,但是需要第三方提供额外的服务完成搜索工作,但是,本实施例无需额外的搜索服务,通过本地的预设索引集合即可完成搜索工作,从而在基于数据库搜索的基础上更大大提高搜索效率。
在本实施例中,对比传统每次搜索都需要进行磁盘读取,把整个文本文件读入内存进行逐行搜索的方案,本实施例通过实现一次初始化加载,即得到的本地的预设索引集合,然后常驻内存的效果,大大缩减了磁盘读取的时间,从而得到更加快速的定位和搜索功能,并且对搜索业务的响应性来说是要高很多。
在本实施例中,本地的预设索引集合包括文件ID索引和标签索引,还可包括其他形式的索引,本实施例对此不作限制,在本实施例中,以文件ID索引和标签索引为例说明,从而实现双索引的文件搜索,如图3所示的搜索阶段的整体流程框架图,获取搜索请求,可根据搜索请求得到标签优先级,然后根据搜索请求可选择按标签搜索还是按文件ID搜索,然后根据搜索方式选择对应的索引进行搜索,即按标签搜索时通过对应的标签索引进行搜索,按文件ID搜索时,通过对应的文件ID索引进行搜索,从而实现多方位的搜索方式,提高搜索的灵活性,需要强调的是,为进一步保证预设索引集合的私密和安全性,预设索引集合还可以存储于一区块链的节点中。
步骤S40,将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值。
需要说明的是,整个标签搜索引擎框架包含两个阶段:标签数据初始化阶段和对外提供搜索服务阶段,初始化阶段的主要工作是一次读取标签文件数据,逐行处理并生成对应的标签索引和文件ID索引,其中标签索引可以用于快速定位“有多少个文件包含了该标签”,文件ID索引可以用于返回“该文件下有多少个标签”,而这两个索引都使用字典数据结构存储,因此生成后能得到较低复杂度的搜索效率,在生成索引模块后,进一步计算获得标签文本中所有标签的优先级,可由用户自定义给的优先级,也可以通过默认的词频统计生成该优先级,下文将展开描述基于词频统计生成的标签优先级。
在完成标签数据初始化之后,通过标签搜索引擎即进入对外提供搜索服务阶段,本阶段下标签搜索引擎主要对外提供两个搜索服务接口,一个是给定某个文件ID返回对应的标签信息,另一个是给定若干个标签作为输入,找到符合该标签范围的所有文件ID。
对比于将标签数据导入数据库方案,本实施例能大大减少组件对第三方工具的依赖,部署更加简单,当标签数据有变动的时候,需要多次修改数据库或者进行重新导入,本实施例只需在项目启动的时候直接调用初始化过程加载一次即可,如有标签文件更新,可直接替换标签文件,并热重启搜索服务即可更新索引。
在实施例中,所述预设索引集合是以键值对的形式进行保存的,从而获取键信息之后,可根据键信息查询预设索引集合从而得到对应的值信息,由于传统的搜索方式,每次搜索都要重新把标签文件打开并读取,然后才能进行搜索,而本实施例中由于建有预设索引集合,预设索引集合中的索引是以键值对的形式,因此,在获取键信息之后即可得到对应的值信息,从而直接得到搜索结果,大大提高搜索效率。
步骤S50,将查找到的值作为搜索结果,从而实现文件的搜索。
在本实施例中,只需在系统服务启动时候加载一次,则常驻内存,减少不必要的磁盘读取操作,而该方案本身就是可被直接调用的代码模块,无需额外部署第三方工具,同时其搜索效率也跟数据库相近,从而提高文件的搜索效率。
本实施例通过上述方案,通过获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;根据所述预设关键字信息确定所述搜索请求信息的类别信息;根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息;将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;将查找到的值作为搜索结果,从而实现文件的搜索,从而通过本地的预设索引集合,无需通过部署数据库相关的服务即可得到搜索结果,提高文件的搜索效率。
在一实施例中,如图4所示,基于第一实施例提出本发明文件的搜索方法第二实施例,在本实施例中,所述预设索引集合包括文件索引;
所述步骤S30之前,所述方法还包括:
步骤S301,在所述类别信息为文件类别信息时,获取所述预设索引集合中的文件索引。
需要说明的是,在完成初始化工作后,标签搜索引擎即可进入提供搜索服务的状态,它对外只有两个搜索接口:一个是输入文件ID,输出该文件ID下对应的标签数组,另一个是输入若干个标签,返回基于标签优先级的所有包含输入标签的文件ID数组。
在本实施例中,主要基于文件ID索引进行搜索。
所述步骤S30,包括:
步骤S302,根据所述文件类别信息访问本地的文件索引。
对文件ID的搜索接口,可以直接利用初始化生成的index_img2tag进行访问获取,假设输入的文件ID是f_id1,则可直接返回index_img2tag[‘f_id1’]即可,从而不使用传统的直接读取标签文件或者将标签文件内容全部倒入到数据库,特别地引入“用空间换时间”的设计思想,通过自建双向索引的方式,用多个字典数据结构保存标签文件内的所有信息,从而实现快速标签搜索的目的。
在一实施例中,所述预设索引集合包括标签索引,所述步骤S30之前,所述方法还包括:
在所述类别信息为标签类别信息时,获取所述预设索引集合中的标签索引。
在本实施例中,主要基于标签索引进行搜索。
所述步骤S30,包括:
根据所述标签类别信息访问本地的标签索引。
在本实施例中,通过标签索引获取输入标签的所对应的文件ID数组,如:
f_id_tag1=index_tag2img[‘tag1’]
f_id_tag2=index_tag2img[‘tag2’]
f_id_tag3=index_tag2img[‘tag3’]
然后计算f_id_tag1,f_id_tag2,f_id_tag3三个文件ID集合的交集并返回结果,至此即完成标签搜索。
本实施例提供的方案,通过预设索引集合包括文件索引和标签索引,根据文件索引和标签索引实现双索引的文件搜索,由于预设索引集合无需配置第三方的数据库服务,从而提高文件的搜索效率。
在一实施例中,如图5所示,基于第一实施例或第二实施例提出本发明文件的搜索方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤S30之前,所述方法还包括:
步骤S301,建立预设字典变量,所述预设字典变量包括键变量信息以及对应的值变量信息。
在本实施例中,在初始化阶段,索引生成是最核心的处理步骤,因为这是能够使搜索效率最大化的关键,本实施例的双向索引具体处理流程是:初始化两个空字典变量,一个叫index_img2tag用于保存文件ID索引,一个叫index_tag2img用于保存标签索引。index_img2tag是一个键是文件ID,值为标签数组的字典结构,如index_img2tag[‘file_id1’]=[‘tag1’,’tag2’,’tag3’],index_tag2img则相反,是一个键为标签,值为文件ID数组的字典结构,如index_tag2img[‘tag1’]=[‘f_id1’,’f_id2’,’f_id3’],如图6所示的初始化阶段的整体流程框架图。
步骤S302,获取历史关键字信息以及对应的历史值信息。
需要说明的是,历史关键字信息以及对应的历史值信息为建立预设索引集合的样本数据,为用户根据需求从以往的文件ID数据以及对应的标签数据,以及标签数据及其对应的文件ID数据,从样本数据从选取有效数据作为历史关键字信息以及对应的历史值信息。
步骤S303,将所述历史关键字信息填入所述键变量信息,将所述历史值信息填入所述值变量信息。
在具体实现中,通过打开标签文件并逐行读入信息,假设当前行文本是形如“f_id1 tag1_tag2_tag3_tag4”格式的字符串,然后分离字符串中的文件ID即f_id1和对应的标签数据tags,其中tags是一个形如[“tag1”,”tag2”,”tag3”,”tag4”]的标签数组。
步骤S304,根据填入的键变量信息与填入的值变量信息生成键值对信息。
在本实施例中,键变量信息为文件ID信息或者标签信息,值变量信息为对应的数组信息,从而根据键变量信息以及对应的数组信息生成键值对信息,从而实现数据的对应关系。
步骤S305,获取所述历史关键字信息的类别信息,根据所述类别信息和键值对信息生成预设索引集合,并保存在本地。
在本实施例中,还可基于词频生成标签优先级列表,由于上述步骤已经生成好了标签索引库,该索引可查询每个标签下有多少个文件ID,也就是该标签被引用的次数,即词频。还可通过计算index_tag2img下每个标签键所对应的文件ID数,然后使用sort方法进行排序,也即得到对应的标签优先级数组tags_prior_list。
为了方便对外提供多个标签搜索服务,因此每次搜索都需要对输入的若干个标签进行优先级排序,因此还基于tags_prior_list生成了标签权值对应表,使用标签作为键,使用该标签在tags_prior_list里的下标序号为值,生成一个字典数据结构tags_prior_map,注意值越大,其优先级越低。在本实施例中,例如tags_prior_map[‘tag1’]=1,tags_prior_map[‘tag2’]=2等,还可为其他形式的优先级方式,本实施例对此不作限制。
在一实施例中,步骤S40,包括:
将所述预设关键字信息作为键信息,判断所述键值对信息中是否存有所述键信息;在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值。
在一实施例中,所述在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值,包括:
在所述键值对信息存有所述键信息时,获取所述键信息对应的目标值信息;判断所述键值对信息中是否存有所述目标值信息;在所述键值对信息中存有所述目标值信息时,根据所述键信息从所述键值对信息中查找对应的值。
在本实施例中,判断文件ID索引index_img2tag中是否包含f_id1的数据,如果没有,则新建一个<f_id1,tags>的键值对,如果已包含该文件ID,假设原来对应的标签数组为tags_old,则计算新的标签数组tags_new取tags_old和tags的并集,并更新键值对<f_id1,tags_new>。
然后,取出当前行的标签数组tags,循环查询每个标签元素tag_tmp,如果标签索引index_tag2img不存在tag_tmp的数据,则新建键值对<tag_tmp,[f_id1]>,如果已存在tag_tmp的数据,则将当前文件ID添加到对应的文件ID数组尾部并更新标签索引。
在本实施例中,有标签文件更新,可直接替换标签文件,并热重启搜索服务即可更新索引,即index_tag2img[‘tag_tmp’]=[‘f_id0’,’f_id2’,’f_id1’],其中‘f_id0’和’f_id2’是之前的文件ID记录,对标签文件的每一行文本重复上述步骤,即可完成索引模块的生成。
在一实施例中,所述步骤S40,包括:
判断所述预设关键字信息是否为标签查询信息;在所述预设关键字信息为标签查询信息时,确定所述标签查询信息中各个标签对应的优先级信息;根据所述键信息以及对应的优先级信息从所述键值对信息中查找对应的值。
在本实施例中,还可支持标签的优先级权重的配置,能实现更多更灵活的业务需求,对于标签搜索接口,由于涉及到输入标签的数量不确定性和优先级的问题,本实施例先对其进行优先级排序,然后再进行搜索的处理。实际处理过程如下,假设输入的标签数组是[tag3,tag1,tag2],那么搜索引擎会先利用tags_prior_map将输入数据转换成权值[tags_prior_map[‘tag3’],tags_prior_map[‘tag1’],tags_prior_map[‘tag2’]],即其优先级值为[3,1,2],对其对应的标签按从小到大重新排序即可得到[tag1,tag2,tag3],即完成本次输入标签的优先级排序,它可在某些特殊需求下,优先对优先级高的标签进行搜索,然后下一步是依次通过标签索引获取输入标签的所对应的文件ID数组,如:
f_id_tag1=index_tag2img[‘tag1’]
f_id_tag2=index_tag2img[‘tag2’]
f_id_tag3=index_tag2img[‘tag3’]
然后计算f_id_tag1,f_id_tag2,f_id_tag3三个文件ID集合的交集并返回结果,至此即完成标签搜索的整个计算过程。
本实施例提供的方案,通过判断所述预设关键字信息是否为标签查询信息;在所述预设关键字信息为标签查询信息时,确定所述标签查询信息中各个标签对应的优先级信息;根据所述键信息以及对应的优先级信息从所述键值对信息中查找对应的值,从而通过标签索引实现搜索结果的输出,提高搜索的灵活性。
本发明进一步提供一种文件的搜索装置。
参照图7,图7为本发明文件的搜索装置第一实施例的功能模块示意图。
本发明文件的搜索装置第一实施例中,该文件的搜索装置包括:
获取模块10,用于获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息。
可以理解的是,本实施例主要应用于研发项目阶段的文件搜索,在一般情况下,对文件或者数据的标签信息的搜索需求在很多日常开发项目中都会经常碰到,而标签信息搜索主要用于解决当项目有海量已标注好的数据时,如何快速精准地提取出带有目标标签信息的数据,也就是如何在海量标签里搜索筛选出符合预期的文件或数据,主要包括通过文件ID或者标签信息进行搜索,然后进一步为项目开发服务,但这与传统的搜索引擎如谷歌、百度等有不一样,因为谷歌百度往往都是基于用户输入进行模糊查找,很多情况下只能返回的相似的搜索结果,而面向标签的搜索往往需要精准的定位,而不是模糊匹配,除了标签搜索匹配之外,因此,本申请可在研发过程中进行搜索服务,得到准确地搜索结果。
在本实施例中,所述搜索请求信息可为通过研发搜索界面发起的搜索请求,还可为通过其他形式发起的搜索请求,本实施例对此不作限制,其中,所述预设关键字信息可为文件ID信息,还可为标签信息,本实施例对此不作限制,即既可以通过文件ID信息进行项目开发过程中的文件搜索,还可通过标签信息进行文件搜索,即实现双索引检索,还可通过其他形式的检索,本实施例对此不作限制,本实施例主要基于文件ID信息或标签信息进行检索为例进行说明。
确定模块20,用于根据所述预设关键字信息确定所述搜索请求信息的类别信息。
在本实施例中,通过预设关键字信息确定所述搜索请求信息的类别信息,例如在预设关键字信息为文件ID信息时,则可得到类别信息为基于文件ID的搜索,在在预设关键字信息为标签信息时,则可得到类别信息为基于标签的搜索,由于本实施例中预设索引集合中存有基于文件ID信息索引以及基于标签信息索引,从而可通过类别信息从预设索引集合中查找对应的索引进行文件搜索,从而提高搜索的准确性。
在具体实现中,可对预设关键字信息进行识别,根据预设关键字信息在类别信息映射比表中进行查找,类别信息映射比表存有关键字信息与类别信息的对应关系,根据预设关键字信息查找类别信息映射比表中的关键字信息,从而根据查找到的关键字信息得到对应的类别信息,从而实现类别信息的识别。
还可提供另一方式进行索引的确定,即获取搜索请求,在获取搜索请求时提供选择方式,通过获取用户选择的搜索方式从而确定的索引进行搜索,例如用户通过搜索界面选择搜索方式,然后通过用户输入的关键字以及选择的搜索方式进行搜索,还可通过获取用户的关键字,然后再获取用户选择的搜索方式进行文件搜索,本实施例对此不作限制。
访问模块30,用于根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中。
需要说明的是,一般情况下通过数据库进行搜索可大大提高搜索效率,但是需要第三方提供额外的服务完成搜索工作,但是,本实施例无需额外的搜索服务,通过本地的预设索引集合即可完成搜索工作,从而在基于数据库搜索的基础上更大大提高搜索效率。
在本实施例中,对比传统每次搜索都需要进行磁盘读取,把整个文本文件读入内存进行逐行搜索的方案,本实施例通过实现一次初始化加载,即得到的本地的预设索引集合,然后常驻内存的效果,大大缩减了磁盘读取的时间,从而得到更加快速的定位和搜索功能,并且对搜索业务的响应性来说是要高很多。
在本实施例中,本地的预设索引集合包括文件ID索引和标签索引,还可包括其他形式的索引,本实施例对此不作限制,在本实施例中,以文件ID索引和标签索引为例说明,从而实现双索引的文件搜索,如图3所示的搜索阶段的整体流程框架图,获取搜索请求,可根据搜索请求得到标签优先级,然后根据搜索请求可选择按标签搜索还是按文件ID搜索,然后根据搜索方式选择对应的索引进行搜索,即按标签搜索时通过对应的标签索引进行搜索,按文件ID搜索时,通过对应的文件ID索引进行搜索,从而实现多方位的搜索方式,提高搜索的灵活性,需要强调的是,为进一步保证预设索引集合的私密和安全性,预设索引集合还可以存储于一区块链的节点中。
查找模块40,用于将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值。
需要说明的是,整个标签搜索引擎框架包含两个阶段:标签数据初始化阶段和对外提供搜索服务阶段,初始化阶段的主要工作是一次读取标签文件数据,逐行处理并生成对应的标签索引和文件ID索引,其中标签索引可以用于快速定位“有多少个文件包含了该标签”,文件ID索引可以用于返回“该文件下有多少个标签”,而这两个索引都使用字典数据结构存储,因此生成后能得到较低复杂度的搜索效率,在生成索引模块后,进一步计算获得标签文本中所有标签的优先级,可由用户自定义给的优先级,也可以通过默认的词频统计生成该优先级,下文将展开描述基于词频统计生成的标签优先级。
在完成标签数据初始化之后,通过标签搜索引擎即进入对外提供搜索服务阶段,本阶段下标签搜索引擎主要对外提供两个搜索服务接口,一个是给定某个文件ID返回对应的标签信息,另一个是给定若干个标签作为输入,找到符合该标签范围的所有文件ID。
对比于将标签数据导入数据库方案,本实施例能大大减少组件对第三方工具的依赖,部署更加简单,当标签数据有变动的时候,需要多次修改数据库或者进行重新导入,本实施例只需在项目启动的时候直接调用初始化过程加载一次即可,如有标签文件更新,可直接替换标签文件,并热重启搜索服务即可更新索引。
在实施例中,所述预设索引集合是以键值对的形式进行保存的,从而获取键信息之后,可根据键信息查询预设索引集合从而得到对应的值信息,由于传统的搜索方式,每次搜索都要重新把标签文件打开并读取,然后才能进行搜索,而本实施例中由于建有预设索引集合,预设索引集合中的索引是以键值对的形式,因此,在获取键信息之后即可得到对应的值信息,从而直接得到搜索结果,大大提高搜索效率。
搜索模块50,用于将查找到的值作为搜索结果,从而实现文件的搜索。
在本实施例中,只需在系统服务启动时候加载一次,则常驻内存,减少不必要的磁盘读取操作,而该方案本身就是可被直接调用的代码模块,无需额外部署第三方工具,同时其搜索效率也跟数据库相近,从而提高文件的搜索效率。
本实施例通过上述方案,通过获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;根据所述预设关键字信息确定所述搜索请求信息的类别信息;根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息;将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;将查找到的值作为搜索结果,从而实现文件的搜索,从而通过本地的预设索引集合,无需通过部署数据库相关的服务即可得到搜索结果,提高文件的搜索效率。
在一实施例中,所述预设索引集合包括文件索引。
所述获取模块10,还用于在所述类别信息为文件类别信息时,获取所述预设索引集合中的文件索引。
在一实施例中,所述预设索引集合包括标签索引;
所述获取模块10,还用于在所述类别信息为标签类别信息时,获取所述预设索引集合中的标签索引。
在一实施例中,所述文件的搜索装置还包括建立模块;
所述建立模块,用于建立预设字典变量,所述预设字典变量包括键变量信息以及对应的值变量信息;
获取历史关键字信息以及对应的历史值信息;
将所述历史关键字信息填入所述键变量信息,将所述历史值信息填入所述值变量信息;
根据填入的键变量信息与填入的值变量信息生成键值对信息;
获取所述历史关键字信息的类别信息,根据所述类别信息和键值对信息生成预设索引集合,并保存在本地。
在一实施例中,所述查找模块40,还用于将所述预设关键字信息作为键信息,判断所述键值对信息中是否存有所述键信息;
在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值。
在一实施例中,所述查找模块40,还用于在所述键值对信息存有所述键信息时,获取所述键信息对应的目标值信息;
判断所述键值对信息中是否存有所述目标值信息;
在所述键值对信息中存有所述目标值信息时,根据所述键信息从所述键值对信息中查找对应的值。
在一实施例中,所述查找模块40,还用于判断所述预设关键字信息是否为标签查询信息;
在所述预设关键字信息为标签查询信息时,确定所述标签查询信息中各个标签对应的优先级信息;
根据所述键信息以及对应的优先级信息从所述键值对信息中查找对应的值。
本发明所述文件的搜索装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,为实现上述目的,本发明还提出一种文件的搜索设备,所述文件的搜索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件的搜索程序,所述文件的搜索程序配置为实现如上文所述的文件的搜索方法的步骤。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有文件的搜索程序,所述文件的搜索程序被处理器执行如上文所述的文件的搜索方法的步骤。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台智能终端设备(可以是手机,计算机,终端设备,空调器,或者网络终端设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种文件的搜索方法,其特征在于,所述文件的搜索方法包括:
获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;
根据所述预设关键字信息确定所述搜索请求信息的类别信息;
根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中;
将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;
将查找到的值作为搜索结果,从而实现文件的搜索。
2.如权利要求1所述的文件的搜索方法,其特征在于,所述预设索引集合包括文件索引;
所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
在所述类别信息为文件类别信息时,获取所述预设索引集合中的文件索引;
所述根据所述类别信息访问本地的预设索引集合,包括:
根据所述文件类别信息访问本地的文件索引。
3.如权利要求1所述的文件的搜索方法,其特征在于,所述预设索引集合包括标签索引;
所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
在所述类别信息为标签类别信息时,获取所述预设索引集合中的标签索引;
所述根据所述类别信息访问本地的预设索引集合,包括:
根据所述标签类别信息访问本地的标签索引。
4.如权利要求1至3中任一项所述的文件的搜索方法,其特征在于,所述根据所述类别信息访问本地的预设索引集合之前,所述方法还包括:
建立预设字典变量,所述预设字典变量包括键变量信息以及对应的值变量信息;
获取历史关键字信息以及对应的历史值信息;
将所述历史关键字信息填入所述键变量信息,将所述历史值信息填入所述值变量信息;
根据填入的键变量信息与填入的值变量信息生成键值对信息;
获取所述历史关键字信息的类别信息,根据所述类别信息和键值对信息生成预设索引集合,并保存在本地。
5.如权利要求1至3中任一项所述的文件的搜索方法,其特征在于,所述将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值,包括:
将所述预设关键字信息作为键信息,判断所述键值对信息中是否存有所述键信息;
在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值。
6.如权利要求5所述的文件的搜索方法,其特征在于,所述在所述键值对信息存有所述键信息时,根据所述键信息从所述键值对信息中查找对应的值,包括:
在所述键值对信息存有所述键信息时,获取所述键信息对应的目标值信息;
判断所述键值对信息中是否存有所述目标值信息;
在所述键值对信息中存有所述目标值信息时,根据所述键信息从所述键值对信息中查找对应的值。
7.如权利要求1至3中任一项所述的文件的搜索方法,其特征在于,所述将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值,包括:
判断所述预设关键字信息是否为标签查询信息;
在所述预设关键字信息为标签查询信息时,确定所述标签查询信息中各个标签对应的优先级信息;
根据所述键信息以及对应的优先级信息从所述键值对信息中查找对应的值。
8.一种文件的搜索设备,其特征在于,所述文件的搜索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件的搜索程序,所述文件的搜索程序配置为实现如权利要求1至7中任一项所述的文件的搜索方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有文件的搜索程序,所述文件的搜索程序被处理器执行时实现如权利要求1至7中任一项所述的文件的搜索方法的步骤。
10.一种文件的搜索装置,其特征在于,所述文件的搜索装置包括:
获取模块,用于获取搜索请求信息,并提取所述搜索请求信息中的预设关键字信息;
确定模块,用于根据所述预设关键字信息确定所述搜索请求信息的类别信息;
访问模块,用于根据所述类别信息访问本地的预设索引集合,所述预设索引集合中包含键值对信息,其中,所述预设索引集合存储在区块链中;
查找模块,用于将所述预设关键字信息作为键信息,根据所述键信息从所述键值对信息中查找对应的值;
搜索模块,用于将查找到的值作为搜索结果,从而实现文件的搜索。
CN202010660001.4A 2020-07-08 2020-07-08 文件的搜索方法、装置、设备及存储介质 Pending CN111813744A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010660001.4A CN111813744A (zh) 2020-07-08 2020-07-08 文件的搜索方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010660001.4A CN111813744A (zh) 2020-07-08 2020-07-08 文件的搜索方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111813744A true CN111813744A (zh) 2020-10-23

Family

ID=72842759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010660001.4A Pending CN111813744A (zh) 2020-07-08 2020-07-08 文件的搜索方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111813744A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328595A (zh) * 2020-10-30 2021-02-05 上海钐昆网络科技有限公司 一种数据查找方法、装置、设备及存储介质
CN113297438A (zh) * 2021-05-21 2021-08-24 深圳市智尊宝数据开发有限公司 信息检索方法、电子设备及相关产品
CN115422131A (zh) * 2022-11-04 2022-12-02 北京国电通网络技术有限公司 业务审核知识库检索方法、装置、设备和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528463A (zh) * 2016-01-21 2016-04-27 北京奇艺世纪科技有限公司 一种搜索引擎的索引数据加载方法和装置
CN105574062A (zh) * 2015-07-01 2016-05-11 宇龙计算机通信科技(深圳)有限公司 一种文件检索方法、装置以及终端
CN109165302A (zh) * 2018-07-27 2019-01-08 腾讯科技(深圳)有限公司 多媒体文件推荐方法及装置
CN109241274A (zh) * 2017-07-04 2019-01-18 腾讯科技(深圳)有限公司 文本聚类方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105574062A (zh) * 2015-07-01 2016-05-11 宇龙计算机通信科技(深圳)有限公司 一种文件检索方法、装置以及终端
CN105528463A (zh) * 2016-01-21 2016-04-27 北京奇艺世纪科技有限公司 一种搜索引擎的索引数据加载方法和装置
CN109241274A (zh) * 2017-07-04 2019-01-18 腾讯科技(深圳)有限公司 文本聚类方法及装置
CN109165302A (zh) * 2018-07-27 2019-01-08 腾讯科技(深圳)有限公司 多媒体文件推荐方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328595A (zh) * 2020-10-30 2021-02-05 上海钐昆网络科技有限公司 一种数据查找方法、装置、设备及存储介质
CN113297438A (zh) * 2021-05-21 2021-08-24 深圳市智尊宝数据开发有限公司 信息检索方法、电子设备及相关产品
CN115422131A (zh) * 2022-11-04 2022-12-02 北京国电通网络技术有限公司 业务审核知识库检索方法、装置、设备和计算机可读介质

Similar Documents

Publication Publication Date Title
CN106202207B (zh) 一种基于HBase-ORM的索引及检索系统
CN111813744A (zh) 文件的搜索方法、装置、设备及存储介质
CN108388640B (zh) 一种数据转换方法、装置以及数据处理系统
CN111506621A (zh) 一种数据统计方法及装置
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
CN113407785B (zh) 一种基于分布式储存系统的数据处理方法和系统
CN116011400A (zh) 一种项目标准测试文档自动化生成方法及装置
KR20200094074A (ko) 인덱스 관리 방법, 장치, 기기 및 저장 매체
CN116415564B (zh) 基于知识图谱的功能点扩增方法和系统
CN114238334A (zh) 异构数据编码、解码方法和装置、计算机设备和存储介质
CN111984673B (zh) 一种电网电能量计量系统树形结构模糊检索方法和装置
CN116383412B (zh) 基于知识图谱的功能点扩增方法和系统
CN111090668B (zh) 数据检索方法及装置、电子设备和计算机可读存储介质
CN112069236A (zh) 关联文件的展示方法、装置、设备及存储介质
CN103793522B (zh) 快速特征码扫描
CN108197470A (zh) 快速特征码扫描
CN116361287A (zh) 路径解析方法、装置以及系统
CN111125216A (zh) 数据导入Phoenix的方法及装置
CN112835932B (zh) 业务表的批量处理方法及装置、非易失性存储介质
CN113076330B (zh) 查询处理方法、装置、数据库系统、电子设备及存储介质
CN110825846B (zh) 数据处理方法及装置
CN113868138A (zh) 测试数据的获取方法、系统、设备及存储介质
CN111695031A (zh) 基于标签的搜索方法、装置、服务器及存储介质
CN112988778A (zh) 一种处理数据库查询脚本的方法和装置
JPH06180717A (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