让我解释一下问题:
- 假设我有一个图书馆,图书馆包含很多书,每本书包含章节,每章包含字符串(字符串以点“.”开头和结尾)。
- 再次顺序,图书馆 -> 书 -> 章节 -> 字符串。
- 我从书籍中提取字符串,我们称它们为“书籍字符串”。
- 我有一个系统,用户可以在搜索表单中输入一个字符串,系统应该从“书籍字符串”返回输入字符串的完全匹配。如果输入的字符串与书籍字符串中的任何字符串都不匹配,则不会返回任何内容。
我想了想,找到了一个解决方案,我将对所有书籍字符串进行 MD5 并保存散列的书籍字符串。当用户输入要搜索的字符串时,我也会对其进行散列并在散列的书籍字符串中搜索匹配项。它更便宜(每个字符串 32 或 64 个字符),比普通搜索更快,并且只返回完全匹配。
有任何意见、想法、更好的解决方案吗?
PS这样的算法叫什么名字?搜索或匹配?