用于搜索的索引文件很大

Index file for searching is large

我在 python 中编写了一个算法,用于为大约 500 个文本文件(有些大于 2 MB)中的每个单词编制索引,以用于我的应用程序的搜索引擎。索引文件是基于 json 的,即 {key:value} 结构。索引的数据是:文件 ID、段落 ID 和行号。这是为每个词做的。相似词合并。

问题是索引文件变得相对较大(是行数据的两倍多),这会增加我的应用程序的大小。该应用程序在没有互联网的情况下使用,因此索引文件必须在内部发送。

这是我第一次弄乱这些东西,所以我想知道是否有办法通过使用其他数据库结构而不是 json 来减小大小,以最佳格式放置索引文件,或其他任何内容。

提前致谢。

你应该检查这个模块:https://docs.python.org/3/library/pickle.html?highlight=pickle#module-pickle

您的 JSON 结构是一个不错的选择,但为了不让您的应用程序变大,您可以使用分布式系统进行索引。

我的意思是您可以创建多个索引文件而不是一个,并且您可以编写一种算法以分布式方式在其中进行搜索

关于大小问题,可以压缩,解压每个索引文件只为搜索


示例:

索引文件:f1、f2、f3

它们将被压缩并存储在您的应用程序中,您可以在这里搜索:

for f in f1 , f2 , f3 :
    index_file = decompress(f)
    # search within index_file