我用python写了一个算法,用于为大约500个文本文件中的每一个词做索引(有些大于2MB),以便在我的应用程序的搜索引擎中使用。索引文件是基于json的,即{key:value}结构。索引的数据是:文件ID、段落ID和行号。这是对每一个词进行的。相似的词进行组合。
问题是索引文件变得比较大(超过行数据的两倍),这将增加我的应用程序的大小。这个app是在没有网络的情况下使用的,所以索引文件一定要运在里面。
这是我第一次做这种事情,所以我想知道是否有办法减少大小,例如,使用其他数据库结构而不是json,索引文件的最佳格式,或者其他什么。
先谢谢你了。
你的JSON结构是一个很好的选择,但是为了不使你的应用变得很大,你可以使用一个分布式系统进行索引。
我的意思是 您可以创建许多索引文件 而不是一个,你可以写一个算法,在其中以分布式的方式进行搜索。
而关于大小问题,你可以压缩它们,并解压每个索引文件,只用于搜索。
例子:
索引文件 : f1 , f2 , f3
他们将被压缩并存储在您的应用程序中 , 搜索这里是你可以做什么 :
for f in f1 , f2 , f3 :
index_file = decompress(f)
# search within index_file