CN113127479A - 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 - Google Patents
一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113127479A CN113127479A CN201911418702.0A CN201911418702A CN113127479A CN 113127479 A CN113127479 A CN 113127479A CN 201911418702 A CN201911418702 A CN 201911418702A CN 113127479 A CN113127479 A CN 113127479A
- Authority
- CN
- China
- Prior art keywords
- index
- elasticissearch
- fst
- memory
- elasticsearch
- 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
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Elasticsearch索引的加载方法,能够解决现有技术中将所有索引的FST都加载至内存中导致内存空间占用不合理的技术问题,所述方法包括:响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。本公开还提供了一种Elasticsearch索引的加载装置、一种计算机设备以及一种计算机可读存储介质。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种Elasticsearch索引的加载方法、装置、计算机设备和计算机可读存储介质。
背景技术
Elasticsearch是基于Apache Lucene的分布式检索系统。Apache Lucene的索引整体分为两部分:一部分为索引表,即Term Dictionary,Term Dictionary是由一系列的Term组成的;另一部分为倒排表,倒排表是由所有term对应的postings组成的。
全文搜索引擎是在Elasticsearch的基础上实现查询的,由于全文搜索引擎通常需要存储大量的文件,且每次查询均需要查询文件的Term Dictionary才能在倒排表中找到对应的postings,在海量数据的背景下,这些Term Dictionary本身的数据量会非常大,若是将Term Dictionary完全加载至内存中会占用大量的内存空间。
为了解决上述问题,现有技术设计了针对Term Dictionary的Term DictionaryTndex,该Term Dictionary Tndex由一个或多个FST(Finite State Transducers,有穷状态转换器)组成,每个FST能够定位Term Dictionary中对应Term的位置,且FST相比于Term所占的空间非常小。因此,在查询过程中,现有技术会将FST加载内存,以降低对内存空间的需求。
然而,发明人研究发现,现有技术中将所有索引的FST都加载至内存中,仍然存在内存空间占用不合理的问题。
针对现有技术中将所有索引的FST都加载至内存中导致内存空间占用不合理的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的在于提供了一种Elasticsearch索引的加载方法、装置、计算机设备和计算机可读存储介质,能够解决现有技术中将所有索引的FST都加载至内存中导致内存空间占用不合理的技术问题。
本发明的一个方面提供了一种Elasticsearch索引的加载方法,所述方法包括:响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
可选地,所述方法还包括:响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;将获取到的所述Elasticsearch索引的FST加载至所述内存。
可选地,所述方法还包括:响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
可选地,确定所述Elasticsearch索引的使用状态的步骤包括:获取所述Elasticsearch索引的创建时间;判断距离所述Elasticsearch索引的创建时间的时间间隔是否大于等于预设时间阈值;在所述时间间隔小于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述时间间隔大于等于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第二状态。
可选地,确定所述Elasticsearch索引的使用状态的步骤包括:获取所述Elasticsearch索引在预设周期内的使用频次;判断所述Elasticsearch索引在所述预设周期内的使用频次是否大于等于预设频次阈值;在所述Elasticsearch索引在所述预设周期内的使用频次大于等于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述Elasticsearch索引在所述预设周期内的使用频次小于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第二状态。
本发明的另一个方面提供了一种Elasticsearch索引的加载装置,所述装置包括:第一确定模块,用于响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;第一加载模块,用于在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;第二加载模块,用于在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
可选地,所述装置还包括:第一判断模块,用于响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;获取模块,用于在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;第三加载模块,用于将获取到的所述Elasticsearch索引的FST加载至所述内存。
可选地,所述装置还包括:第二确定模块,用于响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;第二判断模块,用于在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;释放模块,用于在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
可选地,所述第一确定模块在确定所述Elasticsearch索引的使用状态时,还用于:获取所述Elasticsearch索引的创建时间;判断距离所述Elasticsearch索引的创建时间的时间间隔是否大于等于预设时间阈值;在所述时间间隔小于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述时间间隔大于等于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第二状态。
可选地,所述第一确定模块在确定所述Elasticsearch索引的使用状态时,还用于:获取所述Elasticsearch索引在预设周期内的使用频次;判断所述Elasticsearch索引在所述预设周期内的使用频次是否大于等于预设频次阈值;在所述Elasticsearch索引在所述预设周期内的使用频次大于等于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述Elasticsearch索引在所述预设周期内的使用频次小于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第二状态。
本发明的再一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的Elasticsearch索引的加载方法。
本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的Elasticsearch索引的加载方法。
本发明提供的Elasticsearch索引的加载方法,将第一状态的Elasticsearch索引和第二状态的Elasticsearch索引区别对待,在收到Elasticsearch索引的打开指令后,对于第一状态的Elasticsearch索引,加载Elasticsearch索引的FST和Elasticsearch索引的FST的元数据至内存,对于第二状态的Elasticsearch索引,只加载Elasticsearch索引的FST的元数据至内存,而不加载Elasticsearch索引的FST。由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,对于第二状态的Elasticsearch索引而言,只加载对应FST的元数据能够极大的降低对内存空间的占用,对于第一状态的Elasticsearch索引而言,即便在内存中增加了对应FST的元数据的数据量,由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,因此在第二状态的Elasticsearch索引不加载FST只加载FST的元数据的基础上,第一状态的Elasticsearch索引的这种操作方式也不会对内存空间产生什么影响,更确切的说,不会由于加载了第一状态的Elasticsearch索引的FST的元数据导致内存空间资源紧缺,故本发明解决了现有技术中将所有索引的FST都加载至内存中导致内存空间占用不合理的技术问题,并且由于第一状态的Elasticsearch索引的FST会常驻内存,查询效率不会受到影响。另外,本发明通过将第二状态的Elasticsearch索引的FST占用的内存空间释放掉,相比于现有技术可以在相同的硬件条件下加载更多的Elasticsearch索引,可以提供更多的检索服务。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性示出了根据本发明实施例的Elasticsearch索引的加载方法的流程图;
图2示意性示出了根据本发明另一实施例的Elasticsearch索引的加载方法的流程图;
图3示意性示出了根据本发明实施例的Elasticsearch索引的加载装置的框图;
图4示意性示出了根据本发明实施例的适于实现Elasticsearch索引的加载方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在Apache Lucene中,用户若想要实现查询,就需要加载对应索引的FST至内存,由于Elasticsearch是基于Apache Lucene实现的,因此Elasticsearch也需要加载全部索引的FST至内存。然而,发明人在使用Elasticsearch实现查询的过程中发现,虽然FST设计非常巧妙,其相比于Term能够极大的降低对内存空间的需求,但是在很多业务场景中,一些不经常使用的Elasticsearch索引(可以称为冷索引)并不会被查询,在数据量非常巨大时,将这些冷索引的FST也加载在内存中,同样会占用不必要的内存空间,增加内存压力,也是一种资源的浪费。基于此,发明人研究出一种Elasticsearch索引的加载方法,将冷索引和热索引(即经常使用的Elasticsearch索引)区别对待,在收到索引打开指令后,对于冷索引,只加载冷索引的FST的元数据,而不加载冷索引的FST,对于热索引,将热索引的FST和热索引的FST的元数据都加载至内存,由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,因此对比冷索引而言,只加载冷索引的FST的元数据能够极大的降低对内存空间的占用,对于热索引而言,即便在内存中增加了对应FST的元数据的数据量,由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,因此,在冷索引不加载FST只加载FST的元数据的基础上,热索引的这种操作方式也不会对内存空间产生什么影响,更确切的说,不会由于加载了热索引的FST的元数据导致内存空间资源紧缺。
具体地,图1示意性示出了根据本发明实施例的Elasticsearch索引的加载方法的流程图。如图1所示,该Elasticsearch索引的加载方法可以包括步骤S11~步骤S13,其中:
步骤S1,响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态。
Elasticsearch索引即为Elasticsearch中的索引,在需要开启Elasticsearch索引以使用Elasticsearch索引查询数据时,需要将Elasticsearch索引的一些必要数据加载至内存中。本实施例中,在加载Elasticsearch索引的必要数据之前,先判断Elasticsearch索引的使用状态,因为不同使用状态的Elasticsearch索引需要加载不同的必要数据至内存。
本实施例中,使用状态可以表征Elasticsearch索引是热索引还是冷索引,其中,使用状态包括第一状态和第二状态,处于第一状态的Elasticsearch索引为热索引,处于第二状态的Elasticsearch索引为冷索引。
可选地,考虑到在一些场景下,会重点关注近期的Elasticsearch索引,因此可以将创建时间比较久的Elasticsearch索引设置为冷索引,而将创建时间比较近的Elasticsearch索引设置为热索引,从而根据创建时间确定Elasticsearch索引的使用状态。具体地,步骤S1可以包括步骤A1~步骤A4,其中:
步骤A1,获取所述Elasticsearch索引的创建时间;
步骤A2,判断距离所述Elasticsearch索引的创建时间的时间间隔是否大于等于预设时间阈值;
步骤A3,在所述时间间隔小于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第一状态;
步骤A4,在所述时间间隔大于等于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第二状态。
本实施例,可以通过创建时间的远近定义Elasticsearch索引的使用状态,如,在当前时间距离创建时间的时间间隔小于预设时间阈值时,则认为该Elasticsearch索引是热索引,将Elasticsearch索引的使用状态确定为第一状态;在当前时间距离创建时间的时间间隔大于等于预设时间阈值时,则认为该Elasticsearch索引是冷索引,将Elasticsearch索引的使用状态确定为第二状态。
可选地,考虑到对冷索引和热索引的区分还有可能与使用频次有关,即不经常使用的Elasticsearch索引为冷索引,经常使用的Elasticsearch索引为热索引,因此本实施例还可以根据使用频次确定Elasticsearch索引的使用状态。具体地,步骤S1也可以包括步骤B1~步骤B4,其中:
步骤B1,获取所述Elasticsearch索引在预设周期内的使用频次;
步骤B2,判断所述Elasticsearch索引在所述预设周期内的使用频次是否大于等于预设频次阈值;
步骤B3,在所述Elasticsearch索引在所述预设周期内的使用频次大于等于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第一状态;
步骤B4,在所述Elasticsearch索引在所述预设周期内的使用频次小于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第二状态。
本实施例中,还可以通过在预设周期内的使用频繁度定义Elasticsearch索引的使用状态,如,在预设周期内的使用频次大于等于预设频次阈值时,则认为该Elasticsearch索引是热索引,将Elasticsearch索引的使用状态确定为第一状态;在预设周期内的使用频次小于预设频次阈值时,则认为该Elasticsearch索引是冷索引,将Elasticsearch索引的使用状态确定为第二状态。
可选地,在确定Elasticsearch索引的使用状态时,还可以同时考虑创建时间的远近和在预设周期内的使用频繁度。如,只有在当前时间距离创建时间的时间间隔小于预设时间阈值,且在预设周期内的使用频次大于等于预设频次阈值时,才认为该Elasticsearch索引是热索引;而在当前时间距离创建时间的时间间隔大于等于预设时间阈值,和/或在预设周期内的使用频次小于预设频次阈值时,则认为该Elasticsearch索引是冷索引。
步骤S2,在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存。
在Elasticsearch索引为热索引时,由于热索引会经常被使用,因此在打开索引时,需要将热索引的FST加载在内存中。
另外,随着时间的推移,热索引还可能会变成冷索引,此时可以将对应FST的元数据从内存中释放掉,以降低内存空间的占用。如,所述方法还包括:
响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;
在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;
在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
在本实施例中,可以定期检测Elasticsearch索引的使用状态,一旦确定Elasticsearch索引处于第二状态即确定Elasticsearch索引为冷索引,便可以从内存中释放对应的FST,由于内存中并不会加载冷索引的FST,因此可以进一步判断内存中是否有对应的FST,若有,则可以将对应的FST从内存中释放。
可见,一旦Elasticsearch索引由热索引变成冷索引之后,便可以从内存中释放该Elasticsearch索引的FST,而在后续需要使用该Elasticsearch索引查询时,则需要从磁盘中加载对应的FST,此时便需要利用对应FST的元数据进行加载,因此在Elasticsearch索引为热索引时,除了需要加载Elasticsearch索引的FST,还需要加载对应FST的元数据至内存。
步骤S3,在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
本实施例中,在Elasticsearch索引为冷索引时,由于冷索引不会经常被使用,为了降对内存空间不必要的占用,在打开索引时,只将该Elasticsearch索引的FST的元数据加载至内存即可,而不必加载该Elasticsearch索引的FST。
但是,即便是冷索引,有时也可能会被使用到,在需要使用冷索引查询数据时,还需要利用对应的FST的元数据从磁盘中获取FST,并将该FST加载至内存,以执行查询任务。如,所述方法还包括:
响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;
在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;
将获取到的所述Elasticsearch索引的FST加载至所述内存。
本实施例中,由于冷热索引的区别对待,在接收到查询指令之后,需要判断内存中是否加载了Elasticsearch索引的FST,如若没有,则需要利用内存中已加载的Elasticsearch索引的FST的元数据从磁盘中获取Elasticsearch索引的FST,并将获取到的该Elasticsearch索引的FST加载至内存中,然后基于加载的Elasticsearch索引的FST执行后续查询任务;如若内存中加载有Elasticsearch索引的FST,则直接利用该Elasticsearch索引的FST执行查询任务即可。
本发明提供的Elasticsearch索引的加载方法,将第一状态的Elasticsearch索引和第二状态的Elasticsearch索引区别对待,在收到Elasticsearch索引的打开指令后,对于第一状态的Elasticsearch索引,加载Elasticsearch索引的FST和Elasticsearch索引的FST的元数据至内存,对于第二状态的Elasticsearch索引,只加载Elasticsearch索引的FST的元数据至内存,而不加载Elasticsearch索引的FST。由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,对于第二状态的Elasticsearch索引而言,只加载对应FST的元数据能够极大的降低对内存空间的占用,对于第一状态的Elasticsearch索引而言,即便在内存中增加了对应FST的元数据的数据量,由于FST的元数据相比于对应FST降低了几十甚至成百上千倍的数据量,因此在第二状态的Elasticsearch索引不加载FST只加载FST的元数据的基础上,第一状态的Elasticsearch索引的这种操作方式也不会对内存空间产生什么影响,更确切的说,不会由于加载了第一状态的Elasticsearch索引的FST的元数据导致内存空间资源紧缺,故本发明解决了现有技术中将所有索引的FST都加载至内存中导致内存空间占用不合理的技术问题,并且由于第一状态的Elasticsearch索引的FST会常驻内存,查询效率不会受到影响。另外,本发明通过将第二状态的Elasticsearch索引的FST占用的内存空间释放掉,相比于现有技术可以在相同的硬件条件下加载更多的Elasticsearch索引,可以提供更多的检索服务。
图2示意性示出了根据本发明另一实施例的Elasticsearch索引的加载方法的流程图。
如图2所示,在该实施例中,在接收到打开索引的指令之后,从磁盘中提取Elasticsearch索引的创建时间,如从Elasticsearch索引的元数据中提取,由于无论冷索引还是热索引均需加载对应的FST的元数据,因此可以在判断Elasticsearch索引的使用状态之前,直接将Elasticsearch索引的FST的元数据加载至内存中。进一步,确定Elasticsearch索引的使用状态,在Elasticsearch索引为冷索引时,结束打开流程;在Elasticsearch索引为热索引时,继续将Elasticsearch索引的FST加载至内存中。在上述操作的基础上,在接收到查询请求之后,判断查询请求指向的Elasticsearch索引是冷索引还是热索引,若是冷索引则利用内存中加载的Elasticsearch索引的FST的元数据从磁盘中获取对应FST,并将该Elasticsearch索引的FST加载至内存,以执行后续查询操作;若Elasticsearch索引为热索引,由于内存中加载了对应FST,则可以直接利用该Elasticsearch索引的FST执行查询操作,如打开索引集合以执行后续查询操作。进一步,定期开启检测线程,以检测Elasticsearch索引的使用状态,一旦发现Elasticsearch索引为冷索引,便可判断内存中是否加载了Elasticsearch索引的FST,若是,则从内存中释放Elasticsearch索引的FST。
本发明的实施例还提供了一种Elasticsearch索引的加载装置,该Elasticsearch索引的加载装置与上述实施例提供的Elasticsearch索引的加载方法相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例。具体地,图3示意性示出了根据本发明实施例的Elasticsearch索引的加载装置的框图,如图3所示,该Elasticsearch索引的加载装置300可以包括第一确定模块301、第一加载模块302和第二加载模块303,其中:
第一确定模块301,用于响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;
第一加载模块302,用于在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;
第二加载模块303,用于在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
可选地,所述装置还包括:第一判断模块,用于响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;获取模块,用于在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;第三加载模块,用于将获取到的所述Elasticsearch索引的FST加载至所述内存。
可选地,所述装置还包括:第二确定模块,用于响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;第二判断模块,用于在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;释放模块,用于在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
可选地,所述第一确定模块在确定所述Elasticsearch索引的使用状态时,还用于:获取所述Elasticsearch索引的创建时间;判断距离所述Elasticsearch索引的创建时间的时间间隔是否大于等于预设时间阈值;在所述时间间隔小于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述时间间隔大于等于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第二状态。
可选地,所述第一确定模块在确定所述Elasticsearch索引的使用状态时,还用于:获取所述Elasticsearch索引在预设周期内的使用频次;判断所述Elasticsearch索引在所述预设周期内的使用频次是否大于等于预设频次阈值;在所述Elasticsearch索引在所述预设周期内的使用频次大于等于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第一状态;在所述Elasticsearch索引在所述预设周期内的使用频次小于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第二状态。
图4示意性示出了根据本发明实施例的适于实现Elasticsearch索引的加载方法的计算机设备的框图。本实施例中,计算机设备400可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备400至少包括但不限于:可通过系统总线相互通信连接的存储器401、处理器402、网络接口403。需要指出的是,图4仅示出了具有组件401-403的计算机设备400,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器403至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器401可以是计算机设备400的内部存储单元,例如该计算机设备400的硬盘或内存。在另一些实施例中,存储器401也可以是计算机设备400的外部存储设备,例如该计算机设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器401还可以既包括计算机设备400的内部存储单元也包括其外部存储设备。在本实施例中,存储器401通常用于存储安装于计算机设备400的操作系统和各类应用软件,例如Elasticsearch索引的加载方法的程序代码等。此外,存储器401还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器402在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器402通常用于控制计算机设备400的总体操作。例如执行与计算机设备400进行数据交互或者通信相关的控制和处理等的Elasticsearch索引的加载方法的程序代码。
在本实施例中,存储于存储器401中的Elasticsearch索引的加载方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器402)所执行,以完成本发明。
网络接口403可包括无线网络接口或有线网络接口,该网络接口403通常用于在计算机设备400与其他计算机设备之间建立通信链接。例如,网络接口403用于通过网络将计算机设备400与外部终端相连,在计算机设备400与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
本实施例还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现Elasticsearch索引的加载方法。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种Elasticsearch索引的加载方法,其特征在于,所述方法包括:
响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;
在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;
在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;
在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;
将获取到的所述Elasticsearch索引的FST加载至所述内存。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;
在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;
在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
4.根据权利要求1所述的方法,其特征在于,确定所述Elasticsearch索引的使用状态的步骤包括:
获取所述Elasticsearch索引的创建时间;
判断距离所述Elasticsearch索引的创建时间的时间间隔是否大于等于预设时间阈值;
在所述时间间隔小于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第一状态;
在所述时间间隔大于等于所述预设时间阈值时,确定所述Elasticsearch索引处于所述第二状态。
5.根据权利要求1所述的方法,其特征在于,确定所述Elasticsearch索引的使用状态的步骤包括:
获取所述Elasticsearch索引在预设周期内的使用频次;
判断所述Elasticsearch索引在所述预设周期内的使用频次是否大于等于预设频次阈值;
在所述Elasticsearch索引在所述预设周期内的使用频次大于等于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第一状态;
在所述Elasticsearch索引在所述预设周期内的使用频次小于所述预设频次阈值时,确定所述Elasticsearch索引处于所述第二状态。
6.一种Elasticsearch索引的加载装置,其特征在于,所述装置包括:
第一确定模块,用于响应于Elasticsearch索引的打开指令,确定所述Elasticsearch索引的使用状态;
第一加载模块,用于在所述Elasticsearch索引处于第一状态时,将磁盘中的所述Elasticsearch索引的FST和所述Elasticsearch索引的FST的元数据加载至内存;
第二加载模块,用于在所述Elasticsearch索引处于第二状态时,将所述磁盘中的所述Elasticsearch索引的FST的元数据加载至所述内存。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一判断模块,用于响应于基于所述Elasticsearch索引的查询指令,判断所述内存中是否加载有所述Elasticsearch索引的FST;
获取模块,用于在所述内存中未加载有所述Elasticsearch索引的FST时,利用所述内存中加载的所述Elasticsearch索引的FST的元数据从所述磁盘中获取所述Elasticsearch索引的FST;
第三加载模块,用于将获取到的所述Elasticsearch索引的FST加载至所述内存。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于响应于所述Elasticsearch索引的状态检测指令,确定所述Elasticsearch索引的使用状态;
第二判断模块,用于在所述Elasticsearch索引处于所述第二状态时,判断所述内存中是否加载有所述Elasticsearch索引的FST;
释放模块,用于在所述内存中加载有所述Elasticsearch索引的FST时,将所述Elasticsearch索引的FST从所述内存中释放。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418702.0A CN113127479A (zh) | 2019-12-31 | 2019-12-31 | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418702.0A CN113127479A (zh) | 2019-12-31 | 2019-12-31 | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127479A true CN113127479A (zh) | 2021-07-16 |
Family
ID=76769778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911418702.0A Pending CN113127479A (zh) | 2019-12-31 | 2019-12-31 | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127479A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688142A (zh) * | 2021-10-25 | 2021-11-23 | 北京金山云网络技术有限公司 | 索引管理方法、装置、存储介质和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942289A (zh) * | 2014-04-12 | 2014-07-23 | 广西师范大学 | 一种Hadoop上面向范围查询的内存缓存方法 |
US20180300415A1 (en) * | 2017-04-16 | 2018-10-18 | Radim Rehurek | Search engine system communicating with a full text search engine to retrieve most similar documents |
CN108984627A (zh) * | 2018-06-20 | 2018-12-11 | 顺丰科技有限公司 | 基于Elasticsearch的加密文档的搜索方法、系统、设备和存储介质 |
CN109521962A (zh) * | 2018-11-14 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种元数据查询方法、装置、设备及计算机可读存储介质 |
CN110287201A (zh) * | 2019-07-02 | 2019-09-27 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、设备及存储介质 |
CN110399535A (zh) * | 2019-02-26 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及设备 |
-
2019
- 2019-12-31 CN CN201911418702.0A patent/CN113127479A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942289A (zh) * | 2014-04-12 | 2014-07-23 | 广西师范大学 | 一种Hadoop上面向范围查询的内存缓存方法 |
US20180300415A1 (en) * | 2017-04-16 | 2018-10-18 | Radim Rehurek | Search engine system communicating with a full text search engine to retrieve most similar documents |
CN108984627A (zh) * | 2018-06-20 | 2018-12-11 | 顺丰科技有限公司 | 基于Elasticsearch的加密文档的搜索方法、系统、设备和存储介质 |
CN109521962A (zh) * | 2018-11-14 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种元数据查询方法、装置、设备及计算机可读存储介质 |
CN110399535A (zh) * | 2019-02-26 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置及设备 |
CN110287201A (zh) * | 2019-07-02 | 2019-09-27 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
CHUN_SOFT: "Elasticsearch索引原理", Retrieved from the Internet <URL:https://blog.csdn.net/ztchun/article/details/93643348?ops_request_misc=&request_id=&biz_id=102&utm_term=elasticsearch%20%E7%B4%A2%E5%BC%95%20fst&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-93643348.142^v96^pc_search_result_base1&spm=1018.2226.3001.4187> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688142A (zh) * | 2021-10-25 | 2021-11-23 | 北京金山云网络技术有限公司 | 索引管理方法、装置、存储介质和电子设备 |
CN113688142B (zh) * | 2021-10-25 | 2022-05-06 | 北京金山云网络技术有限公司 | 索引管理方法、装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844634B (zh) | 多元通用模型平台建模方法、电子设备及计算机可读存储介质 | |
US10275355B2 (en) | Method and apparatus for cleaning files in a mobile terminal and associated mobile terminal | |
CN110704521A (zh) | 接口数据接入方法及系统 | |
CN107247722B (zh) | 一种文件扫描方法、装置及智能终端 | |
CN108459913B (zh) | 数据并行处理方法、装置及服务器 | |
CN110515795B (zh) | 一种大数据组件的监控方法、装置、电子设备 | |
CN110069739B (zh) | 页面预加载方法及装置 | |
CN108920691A (zh) | 前端静态资源的管理方法、装置、计算机设备及存储介质 | |
WO2019148657A1 (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN111125721A (zh) | 一种进程启动的控制方法、计算机设备和可读存储介质 | |
CN113127479A (zh) | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 | |
CN112118189B (zh) | 一种流量采样方法、计算机设备及计算机可读存储介质 | |
CN111259012B (zh) | 数据均匀化方法、装置、计算机设备及存储介质 | |
CN112363814A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN112069175A (zh) | 数据查询的方法、装置及电子设备 | |
CN112257106B (zh) | 一种数据检测方法及装置 | |
CN115033551A (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
CN111079390B (zh) | 一种复选框列表的选择状态确定方法以及装置 | |
CN109885551B (zh) | 电子装置、元数据处理方法和计算机可读存储介质 | |
CN112583761B (zh) | 安全实体的管理方法、装置、计算机设备和存储介质 | |
CN110677353B (zh) | 数据访问方法及系统 | |
CN113392131A (zh) | 数据处理方法、装置及计算机设备 | |
CN111125744B (zh) | 代码分支合并方法、系统、计算机设备及可读存储介质 | |
CN112417324A (zh) | 基于Chrome的URL拦截方法、装置及计算机设备 |
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 |