一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

索引存储方法、装置、检索引擎、电子设备及存储介质与流程

2022-03-23 02:51:16 来源:中国专利 TAG:


1.本公开涉及大数据处理技术领域,尤其涉及索引存储方法、装置、检索引擎、电子设备及存储介质。


背景技术:

2.检索引擎技术在计算机科学的信息获取领域一直都是一项前沿技术,通常采用的基于磁盘的检索引擎,以下简称磁盘检索引擎。然而,该磁盘检索引擎越来越无法适应对读取处理中更高的效率需求,因此,如何提供一种效率更高的检索存储方式,就成为需要解决的问题。


技术实现要素:

3.本公开实施例提供一种索引存储方法、装置、检索引擎、电子设备及存储介质,以解决现有技术中的一个或多个技术问题。
4.第一方面,本公开提供一种索引存储方法,包括:
5.对目标文件进行处理,得到所述目标文件的索引文件;
6.基于所述索引文件的数据量,确定所述索引文件的存储位置,所述索引文件的存储位置至少包含内存;
7.基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,所述数据存储结构至少包含内存数据存储结构。
8.第二方面,本公开提供一种索引存储区装置,包括:
9.索引创建模块,用于对目标文件进行处理,得到所述目标文件的索引文件;
10.存储方式确定模块,用于基于所述索引文件的数据量,确定所述索引文件的存储位置,所述索引文件的存储位置至少包含内存;
11.索引存储模块,用于基于所述索引文件的存储方式所对应的数据存储结构,对所述索引文件进行存储,所述数据存储结构至少包含内存数据存储结构。
12.第三方面,本公开实施例提供一种检索引擎,包括本公开提供的索引形成装置。
13.第四方面,本公开实施例提供一种电子设备,包括:
14.至少一个处理器;以及
15.与至少一个处理器通信连接的存储器;其中,
16.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开任意一项实施例所提供的方法。
17.第五方面,本公开实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行本公开任意一项实施例所提供的方法。
18.通过上述方案,可以根据索引文件的数据量灵活选择合适的存储位置,保证了处理效率,并且还可以兼顾性能和成本。
19.上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
20.附图用于更好地理解本方案,不构成对本公开的限定。其中:
21.图1是根据本公开一实施例的索引存储方法的流程图;
22.图2是根据本公开一实施例的索引存储装置的示意性框图;
23.图3是根据本公开一实施例的索引存储模块的示意性框图;
24.图4是根据本公开一实施例的检索引擎的示意性框图;
25.图5是用来实现本公开实施例的索引存储方法的电子设备的框图。
具体实施方式
26.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
27.计算硬件和十几年前比有了极大的突破,和几gb内存,旋转式磁碟的硬盘相比,现代服务器往往是100g以上的超大内存,配置超高速的ssd存储。全新的硬件设施让软件开发人员的软件开发思路和十几年前相比完全不同。更充裕的内存以及读写速度更快的磁盘,能够在各种情况下帮助开发者充分提升软件的性能。当然,强劲的全新硬件带来的也是硬件成本上的提升,开发者需要平衡不同硬件之间的成本,在合适的场景下使用成本可接受的硬件方案,进而设计出合理性能和成本的软件系统。
28.如前所述lucene是一种基于磁盘的检索引擎,其采用所有索引全部落盘的方式,虽然成本较低,但是无法在对查询速度或性能有更高要求的业务场景满足需求。lucene虽然支持通过mmap(内存映射文件)技术将文件映射到内存来提高文件读取的效率。但是这种方式本质上还是采用磁盘数据存储结构,与采用内存数据存储结构存储至存储相比,读取效率仍然不够高。
29.本公开基于以上描述,提供了一种索引存储方法、装置、检索引擎、电子设备及存储介质,其在形成索引的过程根据索引文件的数据量大小选择合适存储位置,从而兼顾性和和成本,针对业务场景进行灵活定制。
30.图1是根据本公开一实施例的索引存储方法的流程图。如图1所示,本公开提供一种索引存储方法,包括以下步骤:
31.s101,对目标文件进行处理,得到所述目标文件的索引文件;
32.s102,基于所述索引文件的数据量,确定所述索引文件的存储位置,所述索引文件的存储位置至少包含内存;
33.s103,基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,所述数据存储结构至少包含内存数据存储结构。
34.在本公开中,所述目标文件为待建立索引的文件,文件可以为各种类型的文件,例如文档、邮件、网页等等。所述目标文件的数量可以有多个,本公开实施例中以一个目标文件为例进行说明,但需要理解的是,针对各个目标文件的处理方式为相同的,因此不做一一赘述。
35.在本公开中,在s101中可以采用各种已知的合适的索引创建方法对目标文件进行
处理来得到目标文件的索引文件。举例来说,所述对目标文件进行处理,得到目标文件的索引文件,可以包括下述步骤:对所述目标文件进行语法分析和语言处理形成一系列词(term),经过索引创建形成词典和反向索引表。
36.在本公开一实施方式中,所述索引文件的存储位置至少包含内存;进一步地,所述索引文件的存储位置还可以包括磁盘。
37.在本公开中,在s102中所述基于所述索引文件的数据量,确定所述索引文件的存储位置可以包括:确定所述索引文件的数据量,判断索引文件的数据量与预设数据量阈值的大小,在索引文件的数据量小于预设的数据量阈值时,确定索引文件的存储位置为内存,在索引文件的数据量大于或等于预设数据量阈值时,则进一步根据所述索引文件所包含的索引结构的数据量,来确定所述索引结构的存储位置。
38.即,在索引文件的数据量合适的情况下,可以根据业务需要将索引文件存储内存中,从而提高索引查询速度,进而提高检索效率。也可以根据业务需要将索引文件存储磁盘中,从降低成本。或者根据业务需要将部分索引文件存储在内存中,部分索引文件存储在磁盘中,从而兼顾性能和成本。
39.作为一个示例,所述索引文件的存储位置可以根据所述索引文件的数据量能不能在一个索引实例放下为标准,如果所述索引文件的数据量在在一个索引实例放下,则所述索引文件尽量采用以内存数据存储结构进行存储的方式,如果内存放不下该索引文件,则将所述索引文件中占比较大的索引结构放入磁盘以节省内存。比如业务数据量需要单索引实例100w,如果所述索引文件都选择以内存数据存储结构进行存储的方式,则在单机器内存能够放下的情况中,可以都选用以内存数据存储结构进行存储的方式,达到最高的检索效率;在单机内存放不下的情况中,那就将比如倒排拉链这部分索引结构放入磁盘里,节省下来这部分内存。
40.在本公开一实施方式中,所述基于所述索引文件的数据量,确定所述索引文件的存储位置包括:在所述索引文件的数据量小于第一预设数据量阈值的情况下,确定所述索引文件的存储位置为内存。即,在所述索引文件的数据量小于第一预设数据量阈值的情况下,将所述索引文件以内存数据存储结构存储至内存中,这样可以大大提高索引文件的查询速度,提高检索性能。
41.所述第一预设数据量阈值可以根据单机内存大小确定,例如可以为单机内存的10%
42.所述第一预设数据量阈值的确定方式可以包括:获取检索引擎单机内存的大小和索引文件,根据单机内存的大小以及索引检索时需要的内存的大小确定第一预设数据量阈值的大小。即,第一预设数据量阈值以不影响索引检索时所需要内存为标准。
43.在本公开一实施方式中,所述基于所述索引文件的数据量,确定所述索引文件的存储位置可以包括:在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,基于所述索引文件包含的至少两种索引结构的数据量,确定所述至少两种索引结构中每种索引结构对应的存储位置。即,在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,根据所述索引文件包含的至少两种索引结构的数据量,确定每个索引结构是存储在内存中还是存储在磁盘中。
44.例如可以将数据量小的索引结构以内数据存储结构存储在内存,数据量大的索引
结构以磁盘数据存储结构存储在磁盘中。这样数据量小的索引结构查询效率提高,数据量大的索引结构存储成本降低,并且没有过多占用内存,实现了性能和成本的兼顾。
45.在本公开一实施方式中,所述索引文件包括至少两种索引结构。作为一个示例,所述索引结构包括词典(term dictionary)、倒排拉链(frequencies)和文档字段(fields)。应当理解,所述索引文件包括的索引结构基于检索引擎设计需要确定,不限于在此示例性列出的索引结构。
46.在本公开一实施方式中,在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,基于所述索引文件包含的至少两种索引结构的数据量,确定所述至少两种索引结构中每种索引结构对应的存储位置,可以包括:在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量小于第二预设数据量阈值的情况下,确定所述第i种索引结构的存储位置为内存,i为大于等于1的整数;在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量大于或等于第二预设数据量阈值的情况下,确定所述第i种索引结构的存储位置为磁盘。即,将索引文件中数据量小于第二预设数据量阈值的索引结构以内存数据存储结构存储在内存中,将索引文件中数据量大于或等于第二预设数据量阈值的索引结构以磁盘数据存储结构存储在磁盘中。这样可以提高小数据量索引结构的查询效率,并降低大数据量索引结构的存储成本。
47.所述第i种索引结构为所述索引文件中包含的至少两种索引结构中任意之一,也就是说,针对每一种索引结构的处理方式均可以为相同的,因此不做一一赘述。
48.其中,所述第二预设数据量阈值与与所述第一预设数据量阈值可以相同,也可以不同。在本技术一实施方式中,所述第二预设数据量阈值小于所述第一预设数据量阈值。所述第二预设数据量阈值可以基于单机内存的大小确定,例如可以以为的单机内存大小的5%。所述第二预设数据量阈值以不影响索引检索时的内存需求为准。所述第二预设数据量阈值还可以基于第一预设数据量阈值以及索引文件包含的索引结构的数量为准。例如所述第二数据量阈值可以基于第一预设数据量阈值与第一预设数据量阈值的商确定。
49.在本公开一实施方式中,在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,基于所述索引文件包含的至少两种索引结构的数据量,确定所述至少两种索引结构中每种索引结构对应的存储位置,可以包括:在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量排序为最小的n个索引结构中之一的情况下,确定所述第i个索引结构的存储位置为内存,n为大于等于1的整数;在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量排序不为最小的n个索引结构中之一的情况下,确定所述第i个索引结构的存储位置为磁盘。即,根据所述索引结构的数据量的排序确定索引结构的存储位置,如果索引结构的数据量的排序为最小,则确定该索引结构的存储位置为内存,反之则确定该索引结构的存储位置为磁盘。这样可以提高小数据量索引结构的查询效率,并降低大数据量索引结构的存储成本。
50.应当理解,数据量的排序为最小的索引结构可能为一种,也可能为多种。当数据量的排序为最小的索引结构为多种时,则将该多种索引结构都以内存数据存储结构存储在内存中。换言之,所述第i种索引结构为所述索引文件中包含的至少两种索引结构中任意之一,也就是说,针对每一种索引结构的处理方式均可以为相同的,因此不做一一赘述。
51.作为一个示例,以小规模数据的业务场景为例,该业务场景下的索引字段长度都
比较小,切词出的词(term)数量就比较少,但是业务的其他非检索字段数量多,每个字段下可能都是一些较长的字符串。在这种场景下,索引文件中词典和倒排拉链所需要的磁盘空间会远远小于文档字段所需要的磁盘空间,因此可以将词典和倒排拉链这两个索引数据采以内存数据存储结构存储在内存中就可以极大地提升倒排索引拉链归并的效率,而将文档字段索引数据以磁盘数据存储结构存储在磁盘中可以降低存储成本,减少内存占用。
52.还应当理解,在根据索引结构的数据量的排序确定索引结构的存储位置时,还可以选择将数据量排序为预设级别的数据结构以内存数据存储结构进行存储。例如索引文件包括4种索引结构a、b、c和d,该4种索引结构的数据量排序从到下为b、c、d、a,则在一实施方式中,可以将排序最后两位的索引结构d和a以内存数据存储结构进行存储,将排序前两位的索引结构b和c以磁盘数据存储结构进行存储。
53.在本公开一实施方式中,所述索引文件的存储位置与数据存储结构相对应;比如,在所述索引文件的存储位置包含内存的情况下,所述存储位置对应的数据存储结构至少包括内存数据存储结构;在所述索引文件的存储位置包含磁盘的情况下,所述存储位置对应的数据存储结构可以包括磁盘数据存储结构。
54.在s103中,基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,可以包括:在确定所述索引文件的存储位置为内存的情况下,则以内存数据存储结构将所述索引文件存储在内存中;在确定所述索引文件的存储位置为磁盘的情况下,则以磁盘数据存储结构将所述索引文件存储在磁盘中。
55.在本公开一实施方式中,所述索引文件包括至少两种索引结构,在基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储时,以每个所述索引结构对应的数据存储结构对每个所述索引结构进行存储,从而实现索引文件的存储。
56.应当理解的是索引文件包括的索引结构的类型和数量基于检索引擎确定。即在检索引擎设计时已经确定了其所形成的索引文件包括的索引结构的种类和数量。
57.作为一个示例,在所述索引文件的数据量小于第一预设数据量阈值的情况下,确定所述索引文件的存储位置为内存的情况下,则根据所述索引文件包括的索引结构的内存数据存储结构将各所述索引结构存储至内存中。
58.作为另一个示例,在所述索引文件的数据量大于或等于第一预设数据量阈值的情况下,所述索引文件中的部分所述索引结构(例如数据量小于第二预设阈值或数据量排序为最小)确定存储位置为内存,部分所述索引结构(例如数据量大于或等于第二预设阈值或数据量排序不为最小)确定存储位置为磁盘,则对于确定存储位置为内存的部分所述索引结构,根据该索引结构的内存数据存储结构将该索引结构存储至内存中;对于确定存储位置为磁盘的部分所述索引结构,根据该索引结构的磁盘数据存储结构将该索引结构存储至磁盘中。
59.在本公开一实施方式中,为了便于实现每种所述索引结构的存储,可以预先生成每种索引结构的虚基类,并基于所述虚基类生成所述索引结构的内存数据存储结构和磁盘数据存储结构,这样,当确定了所述索引结构的存储位置之后,便可以直接调用与所述索引结构的存储位置对应的数据存储结构对所述索引结构进行存储,提高存储效率。
60.在本公开一实施方式中,所述索引结构的内存数据存储结构和磁盘数据存储结构基于索引结构的虚基类和对应的数据存储结构生成。索引结构的虚基类表示对索引结构进
行抽象后得到该索引结构的一般数据存储结构。得到索引结构的虚基类之后,便基于索引结构的虚基类和内存数据结构生成该索引结构的内存数据存储结构,基于索引结构的虚基类和磁盘数据结构生成该索引结构的磁盘数据存储结构。以倒排拉链为例,倒排拉链的内存数据存储结构基于倒排拉链的虚基类和内存数据结构生成。示例性地,倒排拉链的内存数据存储结构为:一个字典类型的数据结构,key是term,value就是文档id的拉链数组。倒排拉链的磁盘数据存储结构为基于kv存储引擎的,key也是term,value是序列化之后的拉链数组,其从磁盘中读出后再反序列化成实际的拉链数组。
61.作为一个示例,索引结构包括词典、倒排拉链和文档字段。在该示例中,可以预先生成词典、倒排拉链和文档字段的虚基类:词典虚基类(termstore)、倒排拉链虚基类(liststore)和文档字段虚基类(fieldstore),以及每种索引结构的内存数据存储结构和磁盘数据存储结构,例如生成词典的内存数据存储结构ramtermstore和磁盘数据存储结构disktermstore,倒排拉链的内存数据存储结构ramliststore和磁盘数据存储结构diskliststore,文档字段内存数据存储结构fieldliststore和磁盘数据存储结构disfieldstore。作为一个示例,在本公开中,可以利用c 语言的多态能力,将每种索引结构单独抽象,通过多态扩展出不同索引结构在不同介质上的具体实现。
62.词典虚基类(termstore)示例性代码如下:
63.class termstore{
64.public:
65.termstore();
66.virtual~termstore();
67.virtual void func()=0;
68.};
69.通过class定义词典虚基类termstore,通过public限定该类可由外部访问,通过virtual限定termstore的虚函数,通过virtual void func()=0限定termstore的纯虚函数,其在派生类中必须重写。
70.类似地,倒排拉链虚基类(liststore)和文档字段虚基类(fieldstore)的示例性代码为:
71.class liststore{
72.public:
73.liststore();
74.virtual~liststore();
75.virtual void func()=0;
76.};
77.class fieldstore{
78.public:
79.fieldstore();
80.virtual~fieldstore();
81.virtual void func()=0;
82.};
83.词典的内存数据存储结构ramtermstore示例性代码如下:
84.class ramtermstore:public termstore{
85.public:
86.ramtermstore();
87.virtual~ramtermstore();
88.virtual void func(){}
89.};
90.通过class定义基于词典虚基类termstore派生出词典的内存数据存储结构ramtermstore,通过public限定该类可由外部访问,通过virtual限定ramtermstore的虚函数,通过virtual void func()限定ramtermstore的虚函数,其在派生类继承中可以不重写。
91.类似地,可以通过上述方式实现词典的磁盘数据存储结构disktermstore,倒排拉链的内存数据存储结构ramliststore和磁盘数据存储结构diskliststore,文档字段内存数据存储结构fieldliststore和磁盘数据存储结构disfieldstore。
92.当确定索引构的存储位置后,则直接调用与所述索引结构的存储位置对应的数据存储结构对所述索引结构进行存储。例如,在一个示例中,词典和倒排拉链确定存在内存中,文档数据确定存在磁盘中,则直接调用ramtermstore,ramliststore和diskfieldstore的数据存储结构分别对词典、倒排拉链和文档数据进行存储即可。
93.通过上述方案,每一种索引结构在不同的介质上都有了不同的实现,对于不同的业务,就可以采用不同的组合,以达到性能和成本的最优组合。
94.在本公开一实施方式中,在所述索引文件的数据量小于第一预设数据量阈值的情况下,确定所述索引文件的存储位置为内存。在这种情况下,所述基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,包括:生成所述索引文件中包含的索引结构的虚基类,基于所述虚基类生成所述索引结构的内存数据存储结构;调用与所述内存对应的数据存储结构对所述索引文件中包含的所述索引结构进行存储。
95.在本公开一实施方式中,索引文件包括至少两种索引结构,且在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,基于所述索引文件包含的至少两种索引结构的数据量,确定所述至少两种索引结构中每种索引结构对应的存储位置。在这种情况下基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,包括:
96.在所述第i个索引结构的存储位置为内存的情况下,生成所述第i个索引结构的虚基类,基于所述虚基类生成所述第i个索引结构的内存数据存储结构;基于所述内存数据存储结构对所述第i个索引结构进行存储;
97.在所述第i个索引结构的存储位置为磁盘的情况下,生成所述第i个索引结构的虚基类,基于所述虚基类生成所述第i个索引结构的磁盘数据存储结构;基于所述磁盘数据存储结构对所述第i个索引结构进行存储。
98.通过上述方案,可以根据索引文件的数据量灵活选择合适的存储位置,保证了处理效率,并且还可以兼顾性能和成本。采用上述方案可以使检索引擎可以针对不同的索引数据结构,灵活定制是以内存数据存储结构存储在内存里,还是以磁盘数据存储结构存储
在磁盘里,或者选择其他更适合的硬件,从而在性能和成本两个维度上做细粒度的调整和更灵活的折中,以能够在不同的业务场景下更好地进行成本的控制。
99.图2是根据本公开一实施例的索引形成装置的示意性框图。如图3所示,本公开提供的索引形成装置200,包括索引创建模块210、存储位置确定模块220和索引存储模块230。
100.索引创建模块210用于对目标文件进行处理,得到所述目标文件的索引文件。
101.存储位置确定模块220用于基于所述索引文件的数据量,确定所述索引文件的存储位置,所述索引文件的存储位置至少包含内存。
102.索引存储模块230用于基于所述索引文件的存储方式所对应的数据存储结构,对所述索引文件进行存储,所述数据存储结构至少包含内存数据存储结构。
103.所述存储位置确定模块220,用于在所述索引文件的数据量小于第一预设数据量阈值的情况下,确定所述索引文件的存储位置为内存;
104.所述索引存储模块230,用于调用预先设置的所述索引文件中包含的索引结构的内存数据存储结构,将所述索引文件包括的所述索引结构存储至内存中。
105.所述存储位置确定模块220,用于在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,基于所述索引文件包含的至少两种索引结构的数据量,确定所述至少两种索引结构中每种索引结构对应的存储位置。
106.所述存储位置确定模块,用于在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量小于第二预设数据量阈值的情况下,确定所述第i种索引结构的存储位置为内存,i为大于等于1的整数;
107.在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量大于或等于第二预设数据量阈值的情况下,确定所述第i种索引结构的存储位置为磁盘。
108.所述存储位置确定模块,用于在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量排序为最小的n个索引结构中之一的情况下,确定所述第i个索引结构的存储位置为内存,n为大于等于1的整数,i为大于等于1的整数;
109.在所述索引文件中包含的至少两种索引结构中的第i种索引结构的数据量排序不为最小的n个索引结构中之一的情况下,确定所述第i个索引结构的存储位置为磁盘。
110.所述索引存储模用于:
111.在所述第i个索引结构的存储位置为内存的情况下,调用预先设定所述第i个索引结构的内存数据存储结构将所述第i个索引结构存储至内存中;
112.在所述第i个索引结构的存储位置为磁盘的情况下,调用预先设定的所述第i个索引结构的磁盘数据存储结构将所述第i个索引结构存储至磁盘中。
113.图3是根据本公开一实施例的索引存储模块的示意性框图。如图3所示,索引存储模块230包括存储结构生成单元310和存储单元320。
114.存储结构生成单元310用于预先生成索引文件中包含的索引结构的虚基类,基于所述虚基类生成所述索引结构的与存储位置对应的数据存储结构;
115.存储单元320用于调用与存储位置对应的数据存储结构对所述索引文件中包含的所述索引结构进行存储。
116.所述索引文件包括的索引结构的类型和数量基于检索引擎确定。存储结构生成单元310用于预先生成各索引结构的数据存储结构。
117.在本公开一实施方式中,在所述索引文件的数据量小于第一预设数据量阈值的情况下,确定所述索引文件的存储位置为内存的情况下,存储单元320用于调用预先设置的所述索引文件中包含的索引结构的内存数据存储结构,将所述索引文件包括的所述索引结构存储至内存中。
118.在本公开一实施方式中,在所述索引文件的数据量大于或等于所述第一预设数据量阈值的情况下,存储单元320用于在所述第i个索引结构的存储位置为内存的情况下,调用预先设定所述第i个索引结构的内存数据存储结构将所述第i个索引结构存储至内存中;在所述第i个索引结构的存储位置为磁盘的情况下,调用预先设定的所述第i个索引结构的磁盘数据存储结构将所述第i个索引结构存储至磁盘中。
119.图4是根据本公开一实施例的检索引擎的示意性框图。如图4所示,本公开提供的检索引擎400,包括文件收集模块410、索引创建模块420、存储位置确定模块430、索引存储模块440、索引库450、查询模块460和索引检索模块470
120.文件收集模块410用于收集待进行索引的目标文件。目标文件可以从网页、数据库、文件系统中获取,也可以通过人工输入。
121.索引创建模块420,用于对所述目标文件进行处理,得到所述目标文件的索引文件;
122.存储位置确定模块430,用于基于所述索引文件的数据量,确定所述索引文件的存储位置,所述索引文件的存储位置至少包含内存;
123.索引存储模块440,用于基于所述索引文件的存储位置所对应的数据存储结构,对所述索引文件进行存储,所述数据存储结构至少包含内存数据存储结构;
124.索引库450,用于存储目标文件的索引文文件。
125.查询模块460,用于接收用户的查询输入,并将用户返回查询结果。
126.索引检索模块470,用于根据用户的查询输入对索引库的索引文件进行检索,从而得与用户查收输入相关的文件,并牌相关度排序返回给用户。
127.在公开一实施方式中,检索引擎400为全文检索引擎。
128.本公开实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
129.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
130.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
131.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
132.如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执
行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
133.设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
134.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如网段信息处理方法。例如,在一些实施例中,网段信息处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的网段信息处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行网段信息处理方法。
135.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
136.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
137.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
138.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机
具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
139.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
140.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
141.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
142.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献