可以使用MySQL创建倒排索引来代替ES吗?

例如,我在MySQL中创建一张表,字段是id,keyword,content_id,然后查找的时候就可以通过关键字查找数据的id。它的原理和ES是一样的。既然如此,ES的优势在哪里?

阅读 3.7k
2 个回答

是的,可以使用MySQL创建倒排索引来实现一些类似搜索功能的需求,但与 Elasticsearch(ES)相比,MySQL的搜索能力和性能可能会有限。

倒排索引是一种常用的搜索引擎技术,用于快速查找包含特定词语的文档或记录。在MySQL中,可以通过合适的表设计和创建适当的索引来模拟倒排索引的功能。

但是,与ES相比,MySQL在以下方面可能存在一些限制:

搜索功能:ES提供了丰富而强大的全文搜索和匹配功能,支持复杂的查询和过滤条件。而MySQL的全文搜索功能相对有限,可能不如ES提供的高级搜索功能灵活和高效。
性能和伸缩性:ES专注于搜索和分析领域,优化了搜索引擎的性能和扩展性。它使用分布式索引和分布式搜索来提供高性能和可扩展性。MySQL在大规模数据集和高并发查询方面可能会面临性能瓶颈。

因为 ES 不仅仅有倒排索引来优化海量数据的查询,还有聚合。

如果只是简单的使用搜索,MySQL >=5.7.6 的 Fulltext (全文索引)也可以直接使用,而不是你自己去这样处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题