用于搜索的索引文件很大
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
我在 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