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

最佳答案

这还不错,但你应该调查一下露西它是一种公共共享的文本索引和搜索工具,用多种语言实现,其中之一是.NET。(你用的是什么平台/语言?)我用它在公共互联网上对网站内容进行免费文本搜索,其主要模式是在paritcula细分市场提供内容(许多杂志文章、书籍摘要等),Lucene为我们工作得非常好。
Lucene

10-06 13:21
查看更多