【问题标题】:Problem: Need to look up a sentence in a database of millions of sentences?问题:需要在数百万个句子的数据库中查找一个句子?
【发布时间】:2011-05-20 18:06:15
【问题描述】:
因此,我将在数据库中存储数百万个句子,每个句子都有一个作者。我需要能够有效地搜索句子并返回作者。现在,我希望能够在这句话中拼错一个单词或忘记一两个单词,并且让应用程序仍然能够匹配(模糊式)。谁能指出我正确的方向?谷歌是如何做到这一点的?因为我可以在谷歌上搜索歌词,它会返回带有歌词的歌曲?我想做同样的事情吗?
谢谢大家。
如果模糊使事情变得过于复杂,那么我可以只处理一个有效的句子搜索。
【问题讨论】:
标签:
algorithm
search
full-text-search
search-engine
【解决方案1】:
如果您使用 Java 编写代码,可以试试Lucene。
不应该真的是“文档”和作者而不是单个句子吗?
【解决方案3】:
SQL Server 或 Oracle 上的全文索引很可能是您开箱即用的功能。他们可以变得模糊,使用词根和其他聪明的东西。
我无法评论其他数据库引擎,尽管谷歌快速显示大多数都会有类似的东西。出于某种原因,我希望它们在模糊性方面受到更多限制。
【解决方案5】:
谷歌是如何做到这一点的?
使用倒排索引。详细信息是专有的,但您可以打赌,内存中有大量的索引复制和存储等,以便它们可以处理每秒获得的大量搜索请求。