首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >全文搜索引擎的比较-Lucene,Sphinx,PostgreSQL,MySQL?

全文搜索引擎的比较-Lucene,Sphinx,PostgreSQL,MySQL?
EN

Stack Overflow用户
提问于 2018-02-07 01:19:57
回答 8查看 0关注 0票数 0

我正在开发一个Django网站,关于搜索引擎我有以下选择:

  • Lucene/Lucene with Compass/Solr
  • Sphinx
  • PostgreSQL
  • MySQL

选择标准:

  • 通过结果相关性排序
  • 检索速度
  • 易于使用,易于与Django集成
  • 资源需求:站点将托管在VPS,因此理想情况下,搜索引擎不需要大量的RAM和CPU。
  • 可伸缩性
  • 额外的功能,相关搜索

有什么好的建议?

注:对于用户实时输入的数据,希望延迟不超过15-30分钟

EN

回答 8

Stack Overflow用户

发布于 2018-02-07 03:32:16

关于Sphinx。

  • 可以自定义排序方式
  • 索引速度非常快,因为它直接与数据库进行数据交互。
  • 有一个Python的API可以与Sphinx直接使用
  • 搜索服务的守护进程(Searchd)的内存使用量非常低,你也可以设置这个内存使用量
  • 我对它的可伸缩性不是很了解。,它在高负载下非常好,所以在多台机器上扩展应该也是非常方便的。
  • Sphinx在使用字典的时候会使用词干,例如,在搜索时,“driving”和“drive”会被认为是相同的。
  • 但是Sphinx不允许对字段数据进行部分索引更新。

我还不是很清楚MySQL的全文搜索,与其他的性能差异。

票数 0
EN

Stack Overflow用户

发布于 2018-02-07 05:01:11

我认为Lucene的性能是无与伦比的。只要正确地设置了Lucene索引,就可以在不到10毫秒的时间内进行任何搜索。

不过,最大的缺陷是:将Lucene集成到项目中比较困难。

至于CPU和RAM的需求,在Lucene中进行搜索并不会对CPU造成太大的影响。

简而言之,如果你有大量的数据要进行搜索,你希望有一个较好的性能,我认为Lucene是最好的选择。如果数据不多,那么你最好还是使用MySQL全文搜索。

票数 0
EN

Stack Overflow用户

发布于 2018-02-07 05:24:54

Solr与Sphinx非常相似,但有更高级的特性(我还没有使用Sphinx,只是阅读了它)。

Solr还提供了以下附加功能:

  1. 支持复制
  2. 多核
  3. 布尔搜索
  4. 关键词高亮
  5. 可以通过xml或分隔文件更新索引
  6. 支持http通信协议(它甚至可以返回JSON,原生PHP/Ruby/Python)
  7. PDF,Word文档索引
  8. 动态字段
  9. 集合
  10. 截至单词、同义词等。
  11. 更像是这样。
  12. 使用自定义查询直接从数据库中索引
  13. 自动建议
  14. 高速缓存自检
  15. 快速索引
  16. 增加特定的关键字或短语的相关性等规则
  17. 实时搜索

还有很多特性;但是,我只列出了我在生产中实际使用的特性。顺便说一句,MySQL支持上面列表中的#1、#3和#11(有限制)。

Solr的另一个好处是一个文档数据库(例如NoSQL),所以任何其他文档数据库的好处都可以通过Solr实现。

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

https://stackoverflow.com/questions/-100003172

复制
相关文章

相似问题

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