数据库的全文索引方法、装置、计算机设备和存储介质与流程

文档序号:36792567发布日期:2024-01-23 12:12阅读:15来源:国知局
数据库的全文索引方法、装置、计算机设备和存储介质与流程

本技术涉及全文索引,具体而言,涉及一种数据库的全文索引方法、装置、计算机设备和存储介质。


背景技术:

1、随着大数据时代的到来,用户对产品的使用便捷程度和使用体验感的要求普遍提高。在交易类型的软件即服务(software-as-a-service,简称saas)产品上既要求数据库具备传统交易型系统的关系模型、强一致性、sql、联表查询、高可用性等能力,还要求数据库具备搜索引擎般的便捷的搜索能力。这对现有的数据库的实现方式提出了很高的要求和挑战。

2、传统交易型系统实现数据强一致的基石是依赖关系型数据库的事务保障:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)以及持久性(durability)。传统的关系型数据库实现查询能力的基础是b+树,新型的分布式关系型数据库一般基于多机分片结合日志结构合并树(log structure merge tree,简称lsm树)的方式实现索引。

3、然而,无论是传统的关系型数据库,还是新型的分布式关系型数据库,在同时支持数据强一致性、关系建模、联表查询和全文索引等的综合能力上尚存在欠缺。


技术实现思路

1、本技术的目的在于提供一种数据库的全文索引方法、装置、计算机设备和存储介质,可以达到为无全文索引功能的关系型数据库增加全文索引能力,并利用同事务保证数据的一致性、实现联表查询等综合能力提升的效果。

2、本技术的实施例是这样实现的:

3、本技术实施例的第一方面,提供一种数据库的全文索引方法,应用于部署在服务器上的中间件,包括:

4、接收终端设备发送的数据访问请求,数据访问请求用于请求对数据库中的数据进行访问;

5、根据数据访问请求的类型,生成数据库访问语句,数据库访问语句包括如下至少一项:主数据表访问语句、全文索引表访问语句,其中,全文索引表与主数据表一一对应,全文索引表用于记录对应的主数据表中的至少一个数据项的分词信息;

6、执行数据库访问语句,得到数据库的访问结果;

7、向终端设备发送响应信息,响应信息中包括数据库的访问结果。

8、作为一种可能的实现方式,根据数据访问请求的类型,生成数据库访问语句,包括:

9、若数据访问请求的类型为插入数据,则根据数据访问请求中的字段数据生成主数据表的插入语句;

10、对数据访问请求中的字段数据进行分词,得到多个全文索引字段分词;

11、根据多个全文索引字段分词,生成主数据表对应的全文索引表的插入语句。

12、作为一种可能的实现方式,执行数据库访问语句,得到数据库的访问结果,包括:

13、将主数据表的插入语句以及主数据表对应的全文索引表的插入语句写入同一事务;

14、执行事务,以同时向主数据表以及主数据表对应的全文索引表中插入数据,得到数据库的访问结果。

15、作为一种可能的实现方式,根据数据访问请求的类型,生成数据库访问语句,包括:

16、若数据访问请求的类型为删除数据,则根据数据访问请求中的字段数据生成主数据表的删除语句;

17、执行数据库访问语句,得到数据库的访问结果,包括:

18、执行主数据表的删除语句,以将主数据表中与字段数据匹配的记录行删除,并根据主数据表与全文索引表的外键约束,将全文索引表中对应的记录行删除。

19、作为一种可能的实现方式,根据数据访问请求的类型,生成数据库访问语句,包括:

20、若数据访问请求的类型为修改数据,则根据数据访问请求中的字段数据查询主数据表中的待更新记录行的标识;

21、根据待更新记录行的标识以及主数据表与全文索引表的外键约束,确定全文索引表中的待删除记录行;

22、生成全文索引表的删除语句,删除语句用于将待删除记录行删除;

23、根据数据访问请求中的字段数据生成主数据表的更新语句;

24、对数据访问请求中的字段数据进行分词,得到多个全文索引字段分词,并根据多个全文索引字段分词生成全文索引表的插入语句。

25、作为一种可能的实现方式,执行数据库访问语句,得到数据库的访问结果,包括:

26、将全文索引表的删除语句、主数据表的更新语句以及全文索引表的插入语句写入同一事务;

27、执行事务,以同时更新主数据表中的待更新记录行以及在主数据表对应的全文索引表中插入待更新记录行对应的分词结果,得到数据库的访问结果。

28、作为一种可能的实现方式,根据数据访问请求的类型,生成数据库访问语句,包括:

29、若数据访问请求的类型为查询数据,则对数据访问请求中的字段数据进行分词,得到多个全文索引字段分词;

30、根据多个全文索引字段分词,生成主数据表对应的全文索引表的查询语句。

31、作为一种可能的实现方式,执行数据库访问语句,得到数据库的访问结果,包括:

32、执行主数据表对应的全文索引表的查询语句,得到数据访问请求对应的目标主数据表中至少一个目标记录行的标识;

33、生成并执行针对目标主数据表的查询语句,得到目标主数据表中各目标记录行的数据,得到数据库的访问结果。

34、本技术实施例的第二方面,提供了一种数据库的全文索引装置,该数据库的全文索引装置包括:

35、接收模块,用于接收终端设备发送的数据访问请求,数据访问请求用于请求对数据库中的数据进行访问;

36、生成模块,用于根据数据访问请求的类型,生成数据库访问语句,数据库访问语句包括如下至少一项:主数据表访问语句、全文索引表访问语句,其中,全文索引表与主数据表一一对应,全文索引表用于记录对应的主数据表中的至少一个数据项的分词信息;

37、执行模块,用于执行数据库访问语句,得到数据库的访问结果;

38、发送模块,用于向终端设备发送响应信息,响应信息中包括数据库的访问结果。

39、本技术实施例的第三方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的数据库的全文索引方法。

40、本技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的数据库的全文索引方法。

41、本技术实施例的有益效果包括:

42、本技术实施例提供的一种数据库的全文索引方法,通过服务器上部署的中间件接收终端设备的数据访问请求,生成相应的数据库访问语句,中间件基于终端设备与数据库的通信协议创建主数据表,同时基于数据库的外键约束条件创建与主数据表级联的全文索引数据表,主数据表用于存储终端设备发送的数据,全文索引表用于存储主数据表中的全文索引字段分词后的结果,根据数据库访问语句对主数据表和全文索引表中的数据进行修改,进而实现对数据库的访问,这样可以将数据一致性、关系建模和联表查询等的综合能力都集成在中间件上,无需将各业务与数据库建立连接,只需要通过其对应的主数据表与全文索引表的联表查询,就可以对数据库进行全文索引。如此,可以达到为无全文索引功能的关系型数据库增加全文索引能力,并利用事务保证数据的一致性、实现联表查询等综合能力提升的效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1