首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >twitter是如何通过使用许可来改进搜索的?

twitter是如何通过使用许可来改进搜索的?
EN

Stack Overflow用户
提问于 2011-04-15 09:03:14
回答 2查看 160关注 0票数 0

最近,twitter工程师发布了一个非常令人印象深刻的关于使用Lucence而不是mysql的搜索架构。所以,我很好奇为什么他们选择收益,为什么mysql不能满足他们的要求?另一方面,DBMS数据库系统的性能(或者可伸缩性)瓶颈是什么?

任何想法都是值得赞赏的!

感谢Adv

万斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-15 11:20:08

把Lucene索引想象成类似于一些大型参考书后面的索引:对于书中出现的每一个重要术语,它都列出了它出现的所有页面。所以,如果你想找到书中所有出现一个词的地方,你可以去索引,得到一个页面列表。

Lucene所做的是获取文档,将它们分解为它们各自的单词(这个过程称为“标记化”),然后在其索引中写入该单词在文档中出现的每个单词/令牌。

把索引想象成哈希表(实际上不是哈希表,但概念相同):键是单词/令牌,每个键都有一个包含该单词的文档(URI、文件名)的列表引用的桶。它不存储文档本身--只是对它的引用。当您对Lucene进行搜索时,您将提供一个关键字,并返回包含该关键字的文档列表,这些文档显示在其索引中。

MySQL和其他关系数据库管理系统的优化用于存储和检索记录--预定义的有序列的集合。当您将索引放在列上时,它会将列的整个内容作为一个单元来查看。如果那一栏是一段文字,它就不会把它分解成文字。

票数 0
EN

Stack Overflow用户

发布于 2011-04-15 09:09:35

MySql是一种RDMS,它非常健壮、快速。它确实支持全文搜索,但并不是很好和有效。Lucence是一个全文搜索引擎。全文搜索引擎能够在文档、文本等中进行搜索,因此能够高效地搜索大量的tweet。

对于查询列,MySql是很好的,对于这些列中的离散搜索值也是如此。就像查询肯定会受到打击一样。

你可以在网上找到很多关于全文搜索的信息。

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

https://stackoverflow.com/questions/5674548

复制
相关文章

相似问题

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