CN116541482A - 文本对象索引方法、对象存储系统及相关设备 - Google Patents
文本对象索引方法、对象存储系统及相关设备 Download PDFInfo
- Publication number
- CN116541482A CN116541482A CN202310391848.0A CN202310391848A CN116541482A CN 116541482 A CN116541482 A CN 116541482A CN 202310391848 A CN202310391848 A CN 202310391848A CN 116541482 A CN116541482 A CN 116541482A
- Authority
- CN
- China
- Prior art keywords
- text
- metadata
- storage
- text object
- service module
- 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 90
- 238000004458 analytical method Methods 0.000 claims abstract description 130
- 238000003058 natural language processing Methods 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 21
- 238000010276 construction Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000003776 cleavage reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000007017 scission Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种文本对象索引方法、对象存储系统及相关设备。其中,该方法包括:前端服务模块在将文本对象写入键值存储数据库系统后,将文本对象的写入成功消息加入到文本写入消息队列;文本分析调度模块消费文本写入消息队列中的写入成功消息,生成文本对象的文本分析任务并调度文本分析模块执行文本分析任务,得到文本对象的代表关键词集合作为文本对象的元数据更新至键值存储数据库系统,以及将文本对象元数据更新消息加入到元数据更新消息队列;以使得索引服务模块根据文本对象元数据更新消息,从键值存储数据库系统读取文本对象的元数据,并构建文本对象的倒排索引,提供索引服务。通过本发明,实现了在对象存储系统中对文本对象的复杂条件检索。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及文本对象索引方法、对象存储系统及相关设备。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。不应以此处的描述包括在本部分中就承认是现有技术。
随着人工智能技术发展,云产品功能服务智能化,迫使云对象存储系统需要在提供基础对象存储服务之上,提供更完善的用户场景解决方案的产品服务,来提升云对象存储系统的竞争力。目前的云对象存储产品大都不提供自动化构建文本搜索产品方案,而现有对象存储系统只支持在用户自行输入标签后,对标签以及元数据的基本文件信息例如文件大小、提交时间、更改时间进行进对象的过滤。目前的对象存储系统提供的索引服务整体功能较为简单,难以在具体场景下实现复杂的条件检索。
发明内容
本发明实施例提供文本对象索引方法、对象存储系统及相关设备,至少解决相关技术的对象存储系统无法实现复杂的条件检索的问题。
一种文本对象索引方法,包括:
前端服务模块接收用户写入的文本对象,将所述文本对象写入键值存储数据库系统,以及将所述文本对象的写入成功消息加入到文本写入消息队列;
文本分析调度模块消费所述文本写入消息队列中的写入成功消息,根据所述写入成功消息从所述键值存储数据库系统读取所述文本对象,生成所述文本对象的文本分析任务,以及调度所述文本分析模块执行所述文本分析任务;
文本分析模块执行所述文本分析任务,将文本分析得到的代表关键词集合返回给所述文本分析调度模块;
所述文本分析调度模块将所述代表关键词集合作为所述文本对象的元数据更新至所述键值存储数据库系统,以及将文本对象元数据更新消息加入到元数据更新消息队列;
索引服务模块消费所述元数据更新消息队列,根据所述文本对象元数据更新消息从所述键值存储数据库系统读取所述文本对象的元数据,并构建所述文本对象的倒排索引,持久化所述倒排索引,以及基于所述倒排索引提供索引服务。
在其中的一些实施例中,所述文本对象索引方法还包括:
所述前端服务模块接收存储桶的元数据,其中,每个所述存储桶用于管理用户数据,所述用户数据包括文本对象;
所述文本分析调度模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从所述键值存储数据库系统读取相应的存储桶内的全量文本对象,生成所述全量文本对象的文本分析任务,其中,管控服务模块存储不同用户的存储桶的元数据。
在其中的一些实施例中,所述文本对象索引方法还包括:
所述文本分析调度模块根据所述管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以生成所有的存储桶内的全量文本对象的文本分析任务。
在其中的一些实施例中,所述文本对象索引方法还包括:
所述前端服务模块接收存储桶的元数据,其中,每个所述存储桶用于管理用户数据,所述用户数据包括文本对象;
所述索引服务模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从所述键值存储数据库系统读取相应的存储桶内的全量文本对象的元数据,并构建所述全量文本对象的倒排索引,其中,所述管控服务模块存储不同用户的存储桶的元数据。
在其中的一些实施例中,所述文本对象索引方法还包括:
所述索引服务模块根据所述管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以构建所有的存储桶内的全量文本对象的元数据的倒排索引。
在其中的一些实施例中,所述文本分析模块基于自然语言处理技术进行文本分析。
在其中的一些实施例中,所述文本对象索引方法还包括:
所述前端服务模块接收所述用户的查询消息,将所述查询消息发送给所述索引服务模块;
所述索引服务模块对所述查询消息进行切词并根据切词结果获得查询词集合,利用所述索引服务在所述用户的存储桶内,查询与所述查询词集合对应的文本对象的查询结果,并将所述查询结果返回给所述用户。
一种对象存储系统,包括:前端服务模块、文本分析调度模块、文本分析模块、文本写入消息队列、元数据更新消息队列、索引服务模块和键值存储数据库系统;所述对象存储系统用于实现上述的文本对象索引方法。
在其中的一些实施例中,所述对象存储系统还包括管控服务模块,所述对象存储系统还用于实现上述的文本对象索引方法。
一种电子设备,包括:处理器,以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述的方法。
一种存储有计算机指令的非瞬时机器可读介质,其中,所述计算机指令用于使所述计算机执行上述的方法。
本发明实施例提供的文本对象索引方法、对象存储系统及相关设备,通过前端服务模块在将文本对象写入键值存储数据库系统后,将文本对象的写入成功消息加入到文本写入消息队列;文本分析调度模块消费文本写入消息队列中的写入成功消息,生成文本对象的文本分析任务并调度文本分析模块执行文本分析任务,得到文本对象的代表关键词集合作为文本对象的元数据更新至键值存储数据库系统,以及将文本对象元数据更新消息加入到元数据更新消息队列;以使得索引服务模块根据文本对象元数据更新消息,从键值存储数据库系统读取文本对象的元数据,并构建文本对象的倒排索引,持久化倒排索引,以及基于倒排索引提供索引服务,实现了在对象存储系统中对文本对象的复杂条件检索。
本发明的一个或多个实施例的细节在以下附图和描述中提出,以使本发明的其他特征、目的和优点更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1是本发明实施例的一种对象存储系统的系统结构图。
图2是本发明实施例的另一种对象存储系统的系统结构图。
图3是本发明实施例的对象存储系统的工作流程示意图。
图4是本发明实施例的文本对象索引方法的流程图。
图5是本发明实施例的文本对象写入过程的流程图。
图6是本发明实施例的文本对象的增量文本分析过程的流程图。
图7是本发明实施例的文本对象的元数据的增量索引构建过程的流程图。
图8是本发明实施例的文本对象的全量文本分析过程的流程图。
图9是本发明实施例的文本对象的元数据的全量索引构建过程的流程图。
图10是本发明实施例的用户查询过程的流程图。
图11是本发明实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本实施例的实施例。虽然附图中显示了本实施例的某些实施例,然而应当理解的是,本实施例可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本实施例。应当理解的是,本实施例的附图及实施例仅用于示例性作用,并非用于限制本实施例的保护范围。
对象存储:可以理解为key、value的一种存储结构,是云端的一种存储系统。如果和文件存储系统做类比,对象是文件,对象的key是文件名,对象的value是文件的内容,不过和文件存储系统不同的是,文件有目录和层级结构,而对象存储系统全是扁平化的结构,每个对象都在一个被称作存储桶(bucket)的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
Object:对象存储系统中的对象,可以理解为一个文件。
Bucket:对象存储系统中的存储桶,为存储object的容器。同一个bucket下面的object的key不能相同,但不同bucket下面的object的key可以相同,同一个object只能属于唯一的一个bucket;不同的用户可以创建不同的bucket,每个bucket的名字不同,这样不同的用户的数据就可以区分开来。一个用户可以创建多个bucket。
文本分析:文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。
word2vec:是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。
NLP:自然语言处理(Natural Language Processing)是研究人与计算机交互的语言问题的一门学科。按照技术实现难度的不同,这类系统可以分成简单匹配式、模糊匹配式和段落理解式三种类型。
索引:索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
OSS(Object Storage Service)对象存储是一种云存储服务,可以存储海量非结构化数据,如图片、音频、视频等。OSS采用分布式存储架构,具有高可靠性、高可用性、高扩展性、高安全性等特点。用户可以通过API、SDK、控制台等方式进行数据的上传、下载、管理和访问。OSS还提供了多种存储类型和计费方式,用户可以根据自己的需求选择适合的存储类型和计费方式。
目前OSS已经支持基本存储对象(object)的元数据搜索,该功能基于文本的元数据信息以及用户人工对文本进行标签提供简单的文本索引功能,其功能仅限于对元数据的存储类型、读写权限、文件名、文件大小、修改时间、多版本以及对象标签进行索引,无法提供文本内容索引,无法覆盖用户对文本内容复杂检索的需求。
用户可以在对象存储系统基础上,在用户侧自建索引服务,但是其开发维护成本高,不利于用户快速搭建文本索引服务。
为了解决相关技术的对象存储系统无法实现复杂的条件检索的问题,在本发明实施例中提供了一种对象存储系统。图1是本发明实施例的一种对象存储系统的系统结构图,如图1所示,该对象存储系统包括:前端服务模块11、文本分析调度模块12、文本分析模块13、文本写入消息队列14、元数据更新消息队列15、索引服务模块16和键值存储数据库系统17。
前端服务模块11,用于接收用户写入的文本对象,将文本对象写入键值存储数据库系统17,以及将文本对象的写入成功消息加入到文本写入消息队列14。前端服务模块11可以层化为对象存储前端服务层,该对象存储前端服务层提供对象存储功能接口的web服务,并直接面向用户。前端服务模块11提供文本对象文件的写入入口。在另一些实施例中还可以提供查询入口,以及提供存储桶(即bucket)的管控数据配置入口。
文本分析调度模块12,用于消费文本写入消息队列14中的写入成功消息,根据写入成功消息从键值存储数据库系统17读取文本对象,生成文本对象的文本分析任务,以及调度文本分析模块13执行文本分析任务。文本分析调度模块12用于对整个系统中的文本对象的文本分析任务进行资源协调以及调度和执行。
文本分析模块13,用于执行文本分析任务,将文本分析得到的代表关键词集合返回给文本分析调度模块12。文本分析模块13负责文本对象的内容分析,例如进行NLP分析,计算得到文本对象的内容的代表关键词集合。
文本分析调度模块12,还用于将代表关键词集合作为文本对象的元数据更新至键值存储数据库系统17,以及将文本对象元数据更新消息加入到元数据更新消息队列15。
索引服务模块16,用于消费元数据更新消息队列15,根据文本对象元数据更新消息从键值存储数据库系统17读取文本对象的元数据,并构建文本对象的倒排索引,持久化倒排索引,以及基于倒排索引提供索引服务。
上述的文本写入消息队列14和元数据更新消息队列15主要用于提供消息的中转,队列支持生产者和消费者模型,用于完成增量数据(即每次写入的文本对象)的更新传送。
通过上述的对象存储系统,在相关技术的对象存储系统中增加文本分析调度模块12和文本分析模块13,并利用对象存储系统的索引服务模块、原有的算力以及消息队列,在用户向键值存储数据库系统17中写入新的文本对象时,触发对文本对象的文本分析获得文本对象的代表关键词集合,并作为文本对象的元数据更新到键值存储数据库系统17中。在更新文本对象的元数据同时,触发索引服务模块生成文本对象的倒排索引,并基于倒排索引提供索引服务,从而实现了自动化的文本对象索引的构建,并且构建的文本对象索引能够支持复杂条件的检索。
为了区分不同用户存储的对象,在对象存储系统中还包括管控服务模块。图2是本发明实施例的另一种对象存储系统的系统结构图。与图1相比,图2中还包括管控服务模块18。
图1所示的对象存储系统支持增量的文本对象的文本分析和索引。图2所示的具有管控服务模块18的对象存储系统还可以实现一个用户或者全部用户的全量文本对象的文本分析和索引。
在其中的一些实施例中,对象存储系统实现用户的全量文本对象的文本分析。
其中,前端服务模块11,还用于接收存储桶的元数据,其中,每个存储桶用于管理用户数据,所述用户数据包括文本对象。
其中,管控服务模块18,用于存储不同用户的存储桶的元数据。
其中,文本分析调度模块12,还用于从管控服务模块18读取用户的存储桶的元数据,并根据存储桶的元数据从键值存储数据库系统17读取相应的存储桶内的全量文本对象,生成全量文本对象的文本分析任务。
其中,在生成全量的文本分析任务之后,文本分析调度模块12将调度文本分析模块13执行文本分析任务。文本分析模块13执行文本分析任务,将文本分析得到的代表关键词集合返回给文本分析调度模块12。文本分析调度模块12将代表关键词集合作为文本对象的元数据更新至键值存储数据库系统17,以及将文本对象元数据更新消息加入到元数据更新消息队列15。索引服务模块16,消费元数据更新消息队列15,根据文本对象元数据更新消息从键值存储数据库系统17读取文本对象的元数据,并构建文本对象的倒排索引,持久化倒排索引,以及基于倒排索引提供索引服务。
其中,倒排索引(Inverted Index)是一种文本索引技术,它将文本中的每个单词都作为关键词,建立一个由关键词到文档的映射,即将文档中出现的每个单词都记录下来,并指向包含该单词的文档。这种索引方式与传统的正向索引(Forward Index)不同,正向索引是将文档作为关键词,建立一个由文档到关键词的映射。倒排索引可以快速地定位包含某个关键词的文档。它可以支持多关键词查询、短语查询、模糊查询等高级搜索功能,能够提高搜索引擎的检索效率和准确性。
倒排索引的建立过程主要包括以下几个步骤:步骤1,对文档进行分词,将文档中的每个单词都提取出来。步骤2,对每个单词建立一个倒排列表,记录下包含该单词的文档编号或文档地址。步骤3,将所有的倒排列表合并成一个倒排索引表,以单词为关键词,以包含该单词的文档列表为值。
在其中的一些实施例中,通过遍历全部用户的全量文本对象,实现对全部用户的全量文本对象进行文本分析及索引。
其中,文本分析调度模块12,还用于根据管控服务模块18提供的所有用户的存储桶的元数据,遍历所有的存储桶,以生成所有的存储桶内的全量文本对象的文本分析任务。
其中,在生成所有用户的全量的文本分析任务之后,文本分析调度模块12将调度文本分析模块13执行文本分析任务。文本分析模块13执行文本分析任务,将文本分析得到的代表关键词集合返回给文本分析调度模块12。文本分析调度模块12将代表关键词集合作为文本对象的元数据更新至键值存储数据库系统17,以及将文本对象元数据更新消息加入到元数据更新消息队列15。索引服务模块16,消费元数据更新消息队列15,根据文本对象元数据更新消息从键值存储数据库系统17读取文本对象的元数据,并构建文本对象的倒排索引,持久化倒排索引,以及基于倒排索引提供索引服务。
由于全量的文本分析任务涉及到大量的元数据更新,可能造成元数据更新新消息队列15拥塞而造成性能瓶颈,在另一些实施例中,在文本分析调度模块12进行一个用户或者所有用户的文本分析的情况下,不向元数据更新消息队列15发送每个文本对象的元数据更新消息,而是在一个用户或者所有用户的所有文本对象的元数据更新完成之后,向元数据更新消息队列15发送一条元数据更新消息,并带上存储桶的标识或者表示所有用户的所有文本对象的元数据更新完成的标识。此后,索引服务模块16消费元数据更新消息队列15完成索引构建并提供索引服务。
在其中的一些实施例中,索引服务模块18也可以在没有元数据更新消息的触发下,适时进行用户的所有文本对象的索引构建并提供索引服务。
其中,前端服务模块11,还用于接收存储桶的元数据,其中,每个存储桶用于管理用户数据,所述用户数据包括文本对象。
其中,管控服务模块18,用于存储不同用户的存储桶的元数据。
其中,索引服务模块16,还用于从管控服务模块18读取用户的存储桶的元数据,并根据存储桶的元数据从键值存储数据库系统17读取相应的存储桶内的全量文本对象的元数据,并构建全量文本对象的倒排索引。
其中,索引服务模块16在构建全量文本对象的倒排索引后,持久化倒排索引,以及基于倒排索引提供索引服务。
在其中的一些实施例中,通过遍历全部用户的全量文本对象的元数据,实现对全部用户的全量文本对象构建倒排索引。
其中,索引服务模块16,还用于根据管控服务模块18提供的所有用户的存储桶的元数据,遍历所有的存储桶,以构建所有的存储桶内的全量文本对象的元数据的倒排索引。
其中,索引服务模块16在构建所有用户的全量文本对象的倒排索引后,持久化倒排索引,以及基于倒排索引提供索引服务。
在其中的一些实施例中,文本分析模块13基于自然语言处理(NLP)技术进行文本分析。
其中,NLP技术包括但不限于下列几种方式:
方式一,基于词频的关键词提取:统计文本中每个词语出现的频率,选取出现频率较高的词语作为关键词。这种方法简单易行。
方式二,基于TF-IDF的关键词提取:TF-IDF是一种常用的文本特征提取方法,它可以衡量一个词语在文本中的重要程度。通过计算每个词语的TF-IDF值,选取TF-IDF值较高的词语作为关键词。
方式三,基于TextRank的关键词提取:TextRank是一种基于图的排序算法,它可以通过计算词语之间的相似度和权重,选取最重要的词语作为关键词。这种方法可以有效地避免停用词的影响,但计算复杂度较高。
方式四,基于深度学习的关键词提取:通过训练神经网络模型(例如word2vec),自动提取文本的关键词。这种方法需要大量的数据和计算资源,在模型训练得当时,在本实施例提供的四种方式中文本分析效果较优。
本实施例的键值存储数据库(Key-Value Store)是一种基于键值对的数据存储系统,它将数据存储为一组键值对,其中每个键都是唯一的,对应一个值。键值存储数据库通常采用哈希表或B树等数据结构来实现数据的快速查找和存储,具有高性能、高可扩展性、高可用性等特点。键值存储数据库通常被用于存储大规模的非结构化数据,如缓存数据、会话数据、日志数据等。它可以支持快速的读写操作,适合于高并发、高吞吐量的应用场景。同时,键值存储数据库还可以通过数据分片、数据备份等方式来提高数据的可扩展性和可靠性,保证数据的安全性和可用性。
在其中的一些实施例中,键值存储数据库系统17为分布式的系统。在本实施例中采用分布式的系统实现键值存储数据库系统,进一步提高了数据库系统的吞吐量和并发数。
基于本实施例的对象存储系统提供的索引服务,用户可以通过前端服务模块11实现复杂条件的检索。
在其中的一些实施例中,前端服务模块11,还用于接收用户的查询消息,将查询消息发送给索引服务模块16。
其中,索引服务模块16,用于对查询消息进行切词并根据切词结果获得查询词集合,利用索引服务在用户的存储桶内,查询与查询词集合对应的文本对象的查询结果,并将查询结果返回给用户。
图3是本发明实施例的对象存储系统的工作流程示意图,在图3中示出了基于上述实施例的对象存储系统实现的增量文本对象的文本分析及索引构建,全量文本对象的文本分析及索引构建,以及索引的查询过程。
下面将结合方法实施例对增量文本对象的文本分析及索引构建,全量文本对象的文本分析及索引构建,以及索引的查询过程进行说明。
本发明实施例基于上述的对象存储系统,提供了一种文本对象索引方法。图4是本发明实施例的文本对象索引方法的流程图,该流程主要实现了增量文本对象的文本分析及索引过程。如图4所示,同时参照图3,该流程包括如下步骤:
步骤S401,前端服务模块接收用户写入的文本对象,将文本对象写入键值存储数据库系统,以及将文本对象的写入成功消息加入到文本写入消息队列。
步骤S402,文本分析调度模块消费文本写入消息队列中的写入成功消息,根据写入成功消息从键值存储数据库系统读取文本对象,生成文本对象的文本分析任务,以及调度文本分析模块执行文本分析任务。
步骤S403,文本分析模块执行文本分析任务,将文本分析得到的代表关键词集合返回给文本分析调度模块。
步骤S404,文本分析调度模块将代表关键词集合作为文本对象的元数据更新至键值存储数据库系统,以及将文本对象元数据更新消息加入到元数据更新消息队列。
步骤S405,索引服务模块消费元数据更新消息队列,根据文本对象元数据更新消息从键值存储数据库系统读取文本对象的元数据,并构建文本对象的倒排索引,持久化倒排索引,以及基于倒排索引提供索引服务。
通过上述步骤,在用户向键值存储数据库系统中写入新的文本对象时,触发对文本对象的文本分析获得文本对象的代表关键词集合,并作为文本对象的元数据更新到键值存储数据库系统中。在更新文本对象的元数据同时,触发索引服务模块生成文本对象的倒排索引,并基于倒排索引提供索引服务,从而实现了自动化的文本对象索引的构建,并且构建的文本对象索引能够支持复杂条件的检索。
图5是本发明实施例的文本对象写入过程的流程图,对应于上述的步骤S401。图5所示的流程主要包括如下步骤:步骤1,用户使用对象存储系统API上传文本数据。步骤2,对象存储前端服务将文本数据写入到KV分布式数据库。步骤3,对象存储前端服务产生一条对象写入成功消息到消息队列。
图6是本发明实施例的文本对象的增量文本分析过程的流程图,对应于上述的步骤S402。图6所示的流程主要包括如下步骤:步骤1,从消息队列读取object写入信息。步骤2,解析object写入信息,读取object数据。步骤3,生成文本分析任务。步骤4,调度分发任务进行执行。
图7是本发明实施例的文本对象的元数据的增量索引构建过程的流程图,对应于上述的步骤S405。图7所示的流程主要包括如下步骤:步骤1,从消息队列读取Object更新信息。步骤2,读取Object元数据。步骤3,根据object元数据信息构建多维度倒排索引。步骤4,持久化倒排索引到固定地址。步骤5,索引服务读取倒排索引进行加载后构建索引服务。
参照图3,在其中的一些实施例中,还可以对用户的文本对象进行全量文本分析。文本对象索引方法还包括:前端服务模块接收存储桶的元数据,其中,每个存储桶用于管理用户数据,所述用户数据包括文本对象。管控服务模块存储不同用户的存储桶的元数据。文本分析调度模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从键值存储数据库系统读取相应的存储桶内的全量文本对象,生成全量文本对象的文本分析任务。
在其中的一些实施例中,还可以对全部用户的文本对象进行全量文本分析。文本对象索引方法还包括:文本分析调度模块根据管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以生成所有的存储桶内的全量文本对象的文本分析任务。
图8是本发明实施例的文本对象的全量文本分析过程的流程图。如图8所示,该流程主要包括如下步骤:步骤1,从管控服务读取bucket的基本信息。步骤2,遍历bucket下所有object数据。步骤3,读取object数据。步骤4,生成文本分析任务。步骤5,调度分发任务进行执行。
参照图3,在其中的一些实施例中,还可以对用户的文本对象的元数据进行全量索引构建。文本对象索引方法还包括:前端服务模块接收存储桶的元数据,其中,每个存储桶用于管理用户数据,所述用户数据包括文本对象。管控服务模块存储不同用户的存储桶的元数据。索引服务模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从键值存储数据库系统读取相应的存储桶内的全量文本对象的元数据,并构建全量文本对象的倒排索引。
在其中的一些实施例中,还可以对全部用户的文本对象的元数据进行全量索引构建。文本对象索引方法还包括:索引服务模块根据管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以构建所有的存储桶内的全量文本对象的元数据的倒排索引。
图9是本发明实施例的文本对象的元数据的全量索引构建过程的流程图。如图9所示,该流程主要包括如下步骤:步骤1,读取bucket信息。步骤2,遍历bucket,读取object元数据。步骤3,根据object元数据信息构建多维度倒排索引。步骤4,持久化倒排索引到固定地址。步骤5,索引服务读取倒排索引进行加载后构建索引服务。
在其中的一些实施例中,文本分析模块基于自然语言处理技术进行文本分析。
其中,NLP技术包括但不限于下列几种方式:
方式一,基于词频的关键词提取:统计文本中每个词语出现的频率,选取出现频率较高的词语作为关键词。这种方法简单易行。
方式二,基于TF-IDF的关键词提取:TF-IDF是一种常用的文本特征提取方法,它可以衡量一个词语在文本中的重要程度。通过计算每个词语的TF-IDF值,选取TF-IDF值较高的词语作为关键词。
方式三,基于TextRank的关键词提取:TextRank是一种基于图的排序算法,它可以通过计算词语之间的相似度和权重,选取最重要的词语作为关键词。这种方法可以有效地避免停用词的影响,但计算复杂度较高。
方式四,基于深度学习的关键词提取:通过训练神经网络模型,自动提取文本的关键词。这种方法需要大量的数据和计算资源,在模型训练得当时,在本实施例提供的四种方式中文本分析效果较优。
在其中的一些实施例中,键值存储数据库系统为分布式的系统。在本实施例中采用分布式的系统实现键值存储数据库系统,进一步提高了数据库系统的吞吐量和并发数。
基于上述方式构建文本对象的倒排索引并提供索引服务后,用户可以通过前端服务模块实现复杂条件的检索。在其中的一些实施例中,文本对象索引方法还包括:前端服务模块接收用户的查询消息,将查询消息发送给索引服务模块;索引服务模块对查询消息进行切词并根据切词结果获得查询词集合,利用索引服务在用户的存储桶内,查询与查询词集合对应的文本对象的查询结果,并将查询结果返回给用户。
图10是本发明实施例的用户查询过程的流程图,如图10所示,同时参照图3,用户查询的过程主要包括如下步骤:步骤1,用户使用API发送query信息。步骤2,索引服务根据用户发送的query信息进行query分析切词得到关联词检索集。步骤3,根据关联词检索集调用索引服务进行索引查询触发,得到关联的object列表集合。步骤4,根据object列表集合进行元数据信息过滤,以及相关性计算后排序。步骤5,将最终结果返回用户。
本发明上述实施例通过在现有对象存储系统的基础上,增加文本分析模块等模块,以及增加或者升级索引模块,在现有对象存储服务功能基础上,为用户提供一套自动化集成的文本内容索引服务,能够降低用户的开发和运维成本。同时该索引服务由于采用了文本分析方式生成丰富的元数据,也实现了复杂条件、复杂文本内容数据的检索。
另外,上述的文本对象索引方法可以作为一项用户可选的服务,不同的用户可以分别选择开启或者不开启文本对象索引服务。对于用户而言不再需要单独开发和维护索引服务,而仅需要关注是否在对象存储系统中开启自身用户的上述文本对象索引服务。
本发明实施例在集成用户数据存储方案的基础上,支持数据存储后文本内容索引构建,提供文本内容索引查询服务,能够有效解决对大规模数据文本进行存储的同时,对数据进行快速检索需求,降低用户对大数据检索的可达成本。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。上述存储器存储有能够被上述至少一个处理器执行的计算机程序,上述计算机程序在被上述至少一个处理器执行时用于使电子设备执行本发明实施例的方法。
本发明实施例还提供一种存储有计算机程序的非瞬时机器可读介质,其中,上述计算机程序在被计算机的处理器执行时用于使上述计算机执行本发明实施例的方法。
参考图11,现将描述可以作为本发明实施例的服务器或客户端的电子设备的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图11所示,电子设备包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储电子设备操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
电子设备中的多个部件连接至I/O接口1105,包括:输入单元1106、输出单元1107、存储单元1108以及通信单元1109。输入单元1106可以是能向电子设备输入信息的任何类型的设备,输入单元1106可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1107可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1108可以包括但不限于磁盘、光盘。通信单元1109允许电子设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于CPU、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理。例如,在一些实施例中,本发明的方法实施例可被实现为计算机程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到电子设备上。在一些实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述的方法。
用于实施本发明实施例的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得计算机程序当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读信号介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本发明实施例使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。本发明实施例中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本发明实施例所提供的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的保护范围在此方面不受限制。
“实施例”一词在本说明书中指的是结合实施例描述的具体特征、结构或特性可以包括在本发明的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见。尤其,对于装置、设备、系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (11)
1.一种文本对象索引方法,包括:
前端服务模块接收用户写入的文本对象,将所述文本对象写入键值存储数据库系统,以及将所述文本对象的写入成功消息加入到文本写入消息队列;
文本分析调度模块消费所述文本写入消息队列中的写入成功消息,根据所述写入成功消息从所述键值存储数据库系统读取所述文本对象,生成所述文本对象的文本分析任务,以及调度所述文本分析模块执行所述文本分析任务;
文本分析模块执行所述文本分析任务,将文本分析得到的代表关键词集合返回给所述文本分析调度模块;
所述文本分析调度模块将所述代表关键词集合作为所述文本对象的元数据更新至所述键值存储数据库系统,以及将文本对象元数据更新消息加入到元数据更新消息队列;
索引服务模块消费所述元数据更新消息队列,根据所述文本对象元数据更新消息从所述键值存储数据库系统读取所述文本对象的元数据,并构建所述文本对象的倒排索引,持久化所述倒排索引,以及基于所述倒排索引提供索引服务。
2.根据权利要求1所述的文本对象索引方法,其中,所述文本对象索引方法还包括:
所述前端服务模块接收存储桶的元数据,其中,每个所述存储桶用于管理用户数据,所述用户数据包括文本对象;
所述文本分析调度模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从所述键值存储数据库系统读取相应的存储桶内的全量文本对象,生成所述全量文本对象的文本分析任务,其中,管控服务模块存储不同用户的存储桶的元数据。
3.根据权利要求2所述的文本对象索引方法,其中,所述文本对象索引方法还包括:
所述文本分析调度模块根据所述管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以生成所有的存储桶内的全量文本对象的文本分析任务。
4.根据权利要求1所述的文本对象索引方法,其中,所述文本对象索引方法还包括:
所述前端服务模块接收存储桶的元数据,其中,每个所述存储桶用于管理用户数据,所述用户数据包括文本对象;
所述索引服务模块从管控服务模块读取用户的存储桶的元数据,并根据存储桶的元数据从所述键值存储数据库系统读取相应的存储桶内的全量文本对象的元数据,并构建所述全量文本对象的倒排索引,其中,所述管控服务模块存储不同用户的存储桶的元数据。
5.根据权利要求4所述的文本对象索引方法,其中,所述文本对象索引方法还包括:
所述索引服务模块根据所述管控服务模块提供的所有用户的存储桶的元数据,遍历所有的存储桶,以构建所有的存储桶内的全量文本对象的元数据的倒排索引。
6.根据权利要求1至5中任一项所述的文本对象索引方法,其中,所述文本分析模块基于自然语言处理技术进行文本分析。
7.根据权利要求1至5中任一项所述的文本对象索引方法,其中,所述文本对象索引方法还包括:
所述前端服务模块接收所述用户的查询消息,将所述查询消息发送给所述索引服务模块;
所述索引服务模块对所述查询消息进行切词并根据切词结果获得查询词集合,利用所述索引服务在所述用户的存储桶内,查询与所述查询词集合对应的文本对象的查询结果,并将所述查询结果返回给所述用户。
8.一种对象存储系统,包括:前端服务模块、文本分析调度模块、文本分析模块、文本写入消息队列、元数据更新消息队列、索引服务模块和键值存储数据库系统;所述对象存储系统用于实现权利要求1,3,5-7中任一项所述的文本对象索引方法。
9.根据权利要求8所述的对象存储系统,其中,所述对象存储系统还包括管控服务模块,所述对象存储系统还用于实现权利要求2或4所述的文本对象索引方法。
10.一种电子设备,包括:处理器,以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至7中任一项所述的方法。
11.一种存储有计算机指令的非瞬时机器可读介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310391848.0A CN116541482A (zh) | 2023-04-07 | 2023-04-07 | 文本对象索引方法、对象存储系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310391848.0A CN116541482A (zh) | 2023-04-07 | 2023-04-07 | 文本对象索引方法、对象存储系统及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116541482A true CN116541482A (zh) | 2023-08-04 |
Family
ID=87453292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310391848.0A Pending CN116541482A (zh) | 2023-04-07 | 2023-04-07 | 文本对象索引方法、对象存储系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541482A (zh) |
-
2023
- 2023-04-07 CN CN202310391848.0A patent/CN116541482A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
US11853334B2 (en) | Systems and methods for generating and using aggregated search indices and non-aggregated value storage | |
US9619491B2 (en) | Streamlined system to restore an analytic model state for training and scoring | |
US10452702B2 (en) | Data clustering | |
CN102915365A (zh) | 基于Hadoop的分布式搜索引擎构建方法 | |
CN109669925B (zh) | 非结构化数据的管理方法及装置 | |
US10915537B2 (en) | System and a method for associating contextual structured data with unstructured documents on map-reduce | |
KR20130049111A (ko) | 분산 처리를 이용한 포렌식 인덱스 방법 및 장치 | |
US20190034445A1 (en) | Cognitive file and object management for distributed storage environments | |
JP7539201B2 (ja) | 階層クラスタリングを使用する希少トピック検出 | |
CN106570153A (zh) | 一种海量url的数据提取方法及系统 | |
CN112970011B (zh) | 记录查询优化中的谱系 | |
CN115203357B (zh) | 一种信息检索及信息索引更新方法、装置、设备及介质 | |
US20220284501A1 (en) | Probabilistic determination of compatible content | |
WO2019231635A1 (en) | Method and apparatus for generating digest for broadcasting | |
CN116541482A (zh) | 文本对象索引方法、对象存储系统及相关设备 | |
US10963490B2 (en) | Text extraction and processing | |
CN106776772B (zh) | 一种数据检索的方法及装置 | |
CN115794984B (zh) | 数据存储方法、数据检索方法、装置、设备以及介质 | |
Khatai et al. | An implementation of text mining decision feedback model using Hadoop MapReduce | |
US20240273065A1 (en) | Hadoop distributed file system (hdfs) express bulk file deletion | |
US11954424B2 (en) | Automatic domain annotation of structured data | |
CN118132555A (zh) | 数据索引生成方法、电子设备及存储介质 | |
CN117692447A (zh) | 大模型的信息处理方法、装置、电子设备及存储介质 | |
CN117520112A (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 |