ElasticSearch与SQL全文搜索

时间:2013-12-11 09:17:35

标签: c# .net sql-server full-text-search elasticsearch

我想在我的项目中使用全文搜索...任何人都可以解释一下,ElasticSearch和SQL全文搜索有什么区别

或者

为什么SQL全文搜索比弹性更好(更差)?

文件,演示文稿,图式......

2 个答案:

答案 0 :(得分:35)

定义“更好”... sql全文搜索对于工作(索引和查询)来说相当简单 - 但它有惩罚:

  • 很少(几乎没有)控制事物的索引方式(索引键是什么;词法分析器/词干分析器是什么等等)
  • 在sql server上运行 - 这通常是您可扩展性最低的基础架构

弹性搜索需要更多工作;您需要设置和维护一个专用的节点集群,然后提供执行实际索引操作的代码,这些代码也可能涉及从更改日志(处理新的/编辑的数据)起作用的预定作业,将片段构建为索引;同样,您需要花费更多时间来构建查询。但是您可以对索引和查询以及可伸缩性(群集可以是您需要的任何大小)进行大量控制。如果它有帮助,Stack Overflow在sql全文搜索上长大,然后在限制(功能和性能)被证明是禁止的时候进入弹性搜索。

答案 1 :(得分:1)

答案取决于您要实现的目标以及达到该目标所需要的资源。 SQL Server全文本搜索的管理员权限较低,但功能有限。弹性搜索位于频谱的另一端。

SQL Server全文搜索:

  • 如果您的数据增长不大或者架构没有随时间变化,则可以证明是有效的
  • 所需的维护工作更少,学习曲线也更少/需要新能力

Elasticsearch:

  • 如果您的主数据库具有频繁的增量更新(logstash和其他替代方法),则需要进行数据提取
  • 水平缩放更好
  • 使用高级功能来提高非常大的数据集(例如路由)的性能的能力