如何使用 JavaScript 在 10 GB 或更大的文件中查找所有唯一单词并启用搜索?
How to find all unique words in a 10 GB file or more & enable search, using JavaScript?
问题是实现一个可以读取 10GB 文件并存储所有不同单词及其出现的 Web 服务。这些需求需要以 O(n) 或更高的复杂度来解决。问题的下一部分是编写所有客户端代码以允许基于按键的搜索。
我该如何解决这个问题?您有什么建议,主要 sub-headings?我们需要使用某种 in-memory 缓存吗? 1 台计算机可以处理 10GB 的数据搜索吗?对于基于语言的不同单词,我应该考虑一个近似值吗(例如,在我读到的 Cracking the coding interview 中,一种语言中大约有 600,000 个不同的单词)。如何处理以这种方式构建的系统的可扩展性?我真的需要帮助来组织我的想法!提前致谢!
你不应该为此使用 JavaScript。几乎任何语言都会有更好的性能。
但是,撇开这个不谈,让我们来回答这个问题。您要做的是创建一个 Set 并遍历所有单词。鉴于数据的大小,您可能希望事先或在读取时将其分成块。
每次只需将键添加到集合中就足够了,因为集合仅包含唯一元素。
或者,如果您有 10+GB 的 RAM,只需将整个内容放入一个数组并将其转换为一个集合。然后您将能够读取唯一值。不过这需要一段时间。
问题是实现一个可以读取 10GB 文件并存储所有不同单词及其出现的 Web 服务。这些需求需要以 O(n) 或更高的复杂度来解决。问题的下一部分是编写所有客户端代码以允许基于按键的搜索。 我该如何解决这个问题?您有什么建议,主要 sub-headings?我们需要使用某种 in-memory 缓存吗? 1 台计算机可以处理 10GB 的数据搜索吗?对于基于语言的不同单词,我应该考虑一个近似值吗(例如,在我读到的 Cracking the coding interview 中,一种语言中大约有 600,000 个不同的单词)。如何处理以这种方式构建的系统的可扩展性?我真的需要帮助来组织我的想法!提前致谢!
你不应该为此使用 JavaScript。几乎任何语言都会有更好的性能。
但是,撇开这个不谈,让我们来回答这个问题。您要做的是创建一个 Set 并遍历所有单词。鉴于数据的大小,您可能希望事先或在读取时将其分成块。
每次只需将键添加到集合中就足够了,因为集合仅包含唯一元素。
或者,如果您有 10+GB 的 RAM,只需将整个内容放入一个数组并将其转换为一个集合。然后您将能够读取唯一值。不过这需要一段时间。