首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lucene或Mysql全文搜索

Lucene或Mysql全文搜索
EN

Stack Overflow用户
提问于 2011-07-26 02:21:45
回答 3查看 10K关注 0票数 10

如今,当开始一个web/移动应用程序项目时,搜索将是一个重要的变量。是从一开始就使用Lucene更好,还是快速部署基于MySQL的解决方案并期待最好的结果?

EN

回答 3

Stack Overflow用户

发布于 2011-07-26 15:43:10

我在2010年11月也做过同样的决定。我是mysql的一个朋友,并试图首先在mysql上构建一个搜索应用程序-它工作得很好……...and fast (我认为它很快):搜索200.000个文档(不超过2-3秒)

我避免花时间在lucene/solr上,因为我想用这段时间来开发应用程序。还有: lucene对我来说是新的。我不知道,如果它足够好,我不知道它是什么.最后:你不能改变终生的习惯。

但是,我遇到了模糊搜索(在mysql中很难实现)或“更像这样”(它们必须在使用mysql应用程序中从scrat编写代码,或者简单地使用“更像这样”的solr特性)的不同问题。最后,文档数量上升到一百万,mysql现在需要15秒以上的时间来搜索文档。

所以我决定从lucene开始,感觉我打开了一扇通往新世界的门。许多特性(我几乎没有编写应用程序特性)现在是由solr提供的,并且开箱即用。全文搜索的速度要快得多:100万个文档中的搜索时间不到50ms,如果缓存的话也不到1ms。

因此,投入的时间得到了回报。

因此,如果您考虑进行全文搜索:以lucene为例,如果您有更多的数据。顺便说一句:我使用了一种混合结构:在mysql中保存数据,lucene只是一个(几乎)没有存储数据的索引(以保持索引小而快)。

票数 24
EN

Stack Overflow用户

发布于 2011-07-26 03:06:42

一般来说,如果你打算使用全文搜索,你肯定会需要lucene或sphinx + mysql (或者lucene + mysql,在lucene中存储可索引字段,并为mysql行返回一个id )。这两个都是很好的选择。

如果你打算执行“普通”搜索(即:整型、字符型或日期型),mysql分区就足够了。

您需要指定要搜索的内容。以及你将多久重新索引你的数据库(如果你打算重新索引很多次,我会使用sphinx)

票数 5
EN

Stack Overflow用户

发布于 2011-08-04 14:10:31

您正在询问是使用Lucene还是MySQL。但是Lucene是一个库,而MySQL是一个服务器。你真的应该在SOLR搜索引擎和MySQL之间做出选择。在这种情况下,正确的答案可能是两者兼而有之。管理MySQL中的所有数据。运行流程以定期提取更改的数据,将其转换为SOLR搜索格式,并将其加载到搜索引擎中。使用SOLR比直接使用Lucene简单得多,如果您需要以某种方式修改行为,您仍然可以为SOLR编写插件,这样就不会损失灵活性。

但尝试使用SOLR管理数据将是死亡之吻。读取-编辑-更新的循环在SQL dbs中工作得很好,但这并不是SOLR的全部内容。SOLR是快速灵活的文本搜索。您可以将图像URL粘贴到SOLR中,以便使用非索引字段准备搜索结果。

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

https://stackoverflow.com/questions/6820527

复制
相关文章

相似问题

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