【发布时间】:2013-01-02 02:36:27
【问题描述】:
我有很多文件(大约 160 000 个),我需要有关文件中单个单词位置的信息(全文)。所以我像这样使用字典:
WordDict : TDictionary<string, TDictionary<string, TIntegerDynArray>>;
现在我知道 WORD1 在 FILE1、FILE3 和 FILE100 以及每个文件 , 等中的位置。 我可以填充它,我可以使用它——它非常快。但我不知道如何有效地将字典存储到文件中。
编辑:有效 - 我的意思是文件的快速和小尺寸
【问题讨论】:
-
你所说的“有效”或“有效”是什么意思?小文件?快速加载整个文件?在不加载文件的情况下快速搜索单词?目前看起来最严格的方法是使用 TMemIniFile。
-
使用 JSON 发射器转储它,并使用 JSON 解析器加载它
-
TIntegerDynArray- 最好使用TArray<Integer>,因为无论如何你都使用泛型。见stackoverflow.com/questions/11029353stackoverflow.com/questions/14383093 -
@David SuperObject 或 mORMot 的 JSON 是否与泛型一起“开箱即用”?特别是在加载时创建对象?并且使用 DBX JSON 几乎不会是最快且没有错误的
-
另一种方法是使用嵌入式 SQL,如 NexusDB 或 SQLite - 通过规范化消除上述冗余,但会引入它们自己的开销。
标签: delphi full-text-search save tdictionary