让我解释一下问题:
- 假设我有一个图书馆,图书馆里有很多书,每本书都有章节,每一章都有字符串(字符串以点“.”开头和结尾)。
- 还是这个顺序,library -> book -> chapter -> string。
- 我从书中提取了字符串,我们称它们为“书籍字符串”。
- 我有一个系统,用户可以在搜索表单中输入一个字符串,系统应该从“书籍字符串”中返回与输入字符串完全匹配的结果。如果输入的字符串与书籍字符串中的任何字符串都不匹配,则不会返回任何内容。
我想了想,找到了一个解决方案,我将对所有书籍字符串进行 MD5 并保存散列的书籍字符串。当用户输入要搜索的字符串时,我也会对其进行散列处理并在散列的书籍字符串中搜索匹配项。它比普通搜索更便宜(每个字符串 32 或 64 个字符),速度更快,并且只返回完全匹配项。
有什么意见、想法、更好的解决方案吗?
附言这种算法的名称是什么?搜索还是匹配?
最佳答案
这还不错,但您应该研究一下 Lucene。它是一个以多种语言实现的公共(public)共享软件文本索引和搜索工具,其中之一是.Net ..(您使用的是什么平台/语言?)我用它在公共(public)互联网上对网站内容进行自由文本搜索主要模型是在特定分割市场(大量杂志文章、书籍摘录等)中提供内容。Lucene 对我们来说效果很好。
关于algorithm - 字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441476/