首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引算法来开发像谷歌桌面搜索这样的应用程序?

索引算法来开发像谷歌桌面搜索这样的应用程序?
EN

Stack Overflow用户
提问于 2009-09-13 11:45:09
回答 2查看 3.3K关注 0票数 2

我想开发类似谷歌桌面搜索的应用程序,我想知道我应该使用哪些索引技术/算法,这样我就可以获得非常快的数据检索。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-13 11:51:41

用于在bzip2中压缩数据的Burrows-Wheeler变换可用于使文本的子串搜索成为一个恒定的时间函数。

http://en.wikipedia.org/wiki/Burrows-Wheeler_transform

我还没有在网上看到简单的介绍,但这里有很多细节:

http://www.ddj.com/architect/184405504

票数 4
EN

Stack Overflow用户

发布于 2009-09-13 14:23:15

通常,您需要的是一个Inverted Index。您可以自己建立索引,但这需要做大量的工作--您需要处理stemmingstop words、扩展发布列表以包括文档中的职位,以便您可以处理多个单词查询,等等。然后,您需要存储索引,可能存储在磁盘上的B-Tree中-或者您可以使用现有的数据库作为磁盘存储,例如BDB,使您的工作变得更容易。您还需要编写一个查询规划器来解释用户查询、执行query expansion并将其转换为一系列索引扫描。维基百科上关于Search Engine Indexing的文章也很好地概述了所有的挑战。

或者,您可以利用现有的工作并使用现成的全文索引解决方案,如Apache LuceneCompass (构建于Lucene之上)。这些工具几乎可以处理上面详细介绍的所有内容(甚至更多),这使得您可以编写工具来构建和更新索引(通过将所有文档提供给Lucene ),以及允许用户搜索索引的UI。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1417559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档