全文检索四种技术解决方案

一、Lucene

Lucene是一个全文检索的工具包,是一堆jar包,不能单独运行,不能独立对外提供服务。
优点:部署简单,它只是应用程序的一个依赖包,不需要独立部署
缺点:1、应用只能单服务器部署,集群部署有问题,全文索引需要在多台应用服务器间同步,是有状态的请求。
2、开发难度偏大,编写的代码量会比较大
3、性能一般,要考虑性能问题。

二、MySQL 5.7.6以上

从MySQL 5.7.6开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效。
优点:开发简单;不需要额外引入Elasticsearch这样的搜索引擎服务器。
缺点:1、中文分词不准确
2、性能不高
3、数据量不大

三、MySQL+IK分词器

在MySQL5.6以下,只有MyISAM引擎支持全文检索。在MySQL5.6以上Innodb引擎也提供支持全文检索。相应字段需要建立FULLTEXT索引。
MySQL5.7.6以下只支持英文全文索引,不支持中文全文索引,需要利用IK分词器把中文段落拆分成单词。
优点:比方案2中文分词更准确;不需要额外引入Elasticsearch这样的搜索引擎服务器。
缺点:1、性能不高
2、数据量不大

四、Elasticsearch搜索引擎
当前的主流技术,重点推荐!互联网公司基本都在使用!功能丰富,性能高,支持的数据量大,可以集群部署,动态扩展性能。
缺点:1、需要一定的学习成本
2、需要独立部署

本人一直想开发一款可以实现全文检索的小工具,同时具备简单的文档分类、管理的功能。在网上搜索对比,发现一款不错的开源的国产软件,基于Elasticserch构建的文档型知识库管理系统:科亿知识库
科亿知识库基于强大的Elasticsearch检索引擎技术构建,检索能力强大,支持最全面的检索特性,同时检索性能可以无限可能的扩展,支持高达百亿级别的记录数量。笔者目前已经把这款软件在公司内部署,用来管理日常项目的文档和技术文档,非常小巧方便。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值