前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搜索概述

搜索概述

作者头像
大数据和云计算技术
发布2018-03-08 16:43:49
1.9K0
发布2018-03-08 16:43:49
举报

最近比较流行的段子是调侃搜狗CEO王小川,说他终于可以找女朋友了,因为之前王小川曾说过,搜狗不上市,就不找女朋友,搜狗终于宣布要赴美IPO了。

王小川最出名的是三级火箭理论,所谓的三级火箭,相信很多人都有所耳闻,依靠输入法的优势,提高浏览器的安装量,进而向用户推销自家的搜索引擎,然并卵,这个理论和绑定流氓软件的思路差不多。其实搜狗之所以能活下来,依靠的是腾讯的加持,包括QQ浏览器,以及移动端的微信一系列APP的流量导入。

不说搜狗,讲讲搜狗干的活,就提到了很有意思的东西,搜索。不得不说,这个东西牛逼,成就了互联网时代最伟大的公司Google,以及他国内的模仿者百度。

1、搜索能干什么

说到搜索,前面写过一篇《搜索简史》,讨论了搜索历史以来的几个阶段和未来的一个发展方向,结合AI,尤其是NLP是自然的选择,更智能的搜索是历史的选择。

除了Google,百度,搜狗这些公司搞的通用搜索之外,其实在企业内部还有大量的数据,专注企业内部数据的搜索,也是个非常大的市场,所以提供这块服务的企业也非常多。

2、国内搜索服务现状

提供企业搜索软件的企业也很多,不过现在都流行云了,就不讨论企业发行版本,本文只简单梳理下哪些云服务提供企业搜索服务,都有那些特点?

2.1、AWS

AWS诉求很简单,上层服务都是为了卖IAAS的资源,应对多个流行搜索软件的情况下,直接同时提供两种搜索服务,分别是:

  • CloudSearch,基于solr ,具体可以看看https://aws.amazon.com/cn/cloudsearch/?nc2=h_m1。
  • Elasticsearch Serivce,基于eleastic search,具体可以看看https://aws.amazon.com/cn/elasticsearch-service/?nc2=h_m1。

2.2、百度BES

百度是基于ES(https://cloud.baidu.com/product/bes.html),且对ES做了不少改进,主要优化点还是结合了数据库的能力,比较有意思:

  1. 增加分布式SQL查询层,兼容MySQL协议
  2. 增加权限管理系统
  3. 支持online schema change
  4. 引入DistributedLog解决脑裂和数据一致性问题
  5. 支持跨机房数据同步
  6. 支持多租户资源隔离

具体的可以看看网上搜一下百度的分享:Baidu对Elasticsearch的优化改进。

2.3、阿里:

阿里是从12年开始打造HA3引擎,当前的opensearch云服务也是基于内部自研的搜索,关于搜索的架构可以看这篇文章,总的来说和ES架构比较类似,可以看看这篇访谈:https://yq.aliyun.com/articles/7479?commentId=984,讲了个大概。

另外从ES中文社区中的阿里招聘帖以及和从据https://www.elastic.co公司的朋友介绍,阿里已经开始寻求elastic.co的服务支持。

2.4、腾讯

说到搜索,肯定要谈腾讯,应该说腾讯当年费了大力气,想搞搜索,结果最后还是搞不成,把业务并给搜狗,入股搜狗,也成就了王小川同学。

腾讯最近又开始投入云服务,上面也有一个服务叫腾讯云搜TCS,归属在AI领域(https://cloud.tencent.com/product/tcs):

官网上号称继承soso的技术积累(见下面一段话),另外结合NLP技术(不知道真假哈,soso团队不都合并给别人了吗?):

只有真正的理解用户输入的检索串,才能给出更好的搜索结果。腾讯云搜有专门的自然语言处理技术团队,并拥有“文智”中文语义开放平台。平台有60多个腾讯产品的成功应用经验和上千亿的互联网语料库积累,提供中文分词、智能纠错、同义词识别、意图识别等能力。腾讯云搜借助该能力,让搜索框智能识别用户的检索意图,对检索串进行理解与纠正,把好用户检索的第二关。

2.5、小结一下

总的来说,几家巨头各有特色,用开源软件的,用自己的也有。

  1. 用开源的,ES相对来说,火一点。
  2. 自研的也开始转向开源ES。
  3. 结合机器学习技术,是当前研究重点。

3、底层技术上:

搜索技术底层技术,大同小异。开源用的比较多的是solr和es,底层基于Lucene,大家可以去看看Lucene的介绍(https://baike.baidu.com/item/Lucene/6753302?fr=aladdin)。

讲到Lucene,就不得不提大牛Doug Cutting,不光是lucene之父,也是hadoop之父,现任cloudera首席架构师。大牛最近还亮相国内接受访谈,聊了聊hadoop十周年(http://news.yesky.com/263/105073263.shtml)。

说来说去,总结一句话,Hadoop是开源开放的,但是开源软件就没有特别好的商业模式,都不赚钱。神奇的逻辑!

4、solr/ES快速比较

4.1、下面简单比较下solr和ES,细节不谈,直接给结论:

  1. Solr/ElasticSearch(ES)均是基于Apache License 2.0的、基于lucene的、提供了较为完整的搜索引擎能力的开源项目。
  2. Solr与ES各有特点,但都比较成熟,对于一般的需求,两者都能很好的胜任。两者的能力也在逐
  3. 渐趋同。早几年ES更受欢迎,但最近Solr也已经补齐了短板。
  4. http://solr-vs-elasticsearch.com/列出了Solr5.3与ES2.0的较为详细的对比。

各方面对比一下:

(1)接口

•Solr支持SQL。两者均支持RESTAPI。ES有自定义的Query DSL

(2)性能

•两者性能相近,但如果做性能优化,两者均需要投入人力进行深入分析

(3)领域

•Solr:站内搜索

•ES:站内搜索、ELK、分析

(4)开源

•Solr:完全开源

•ES:开源,但掌控于一家公司

(5)Hadoop支持

•Solr:支持与HDFS深入结合,但仅支持MR

•ES:在YARN、HDFS、SPARK、HIVE、PIG等方面均有支持,但index on HDFS功能有限

(6)生态

•ES生态要好于Solr,至少从目前来看

(7)Learning to rank扩展

•两者均需要投入资源进行二次开发

4.2、总的来说:

  1. Solr/ES之间的区别不像很多其他开源组件(如HBASE与MongoDB,如SparkSQL与HIVE,如SparkSreaming与Flink)之间有明显的不同,导致各自有各自明确的使用场景。在绝大多数情况下,Solr能完成的任务,ES也一样,反之亦然,而且性能差距很小。这就像VI/Emacs的编辑器之争一样,每个都有很多拥簇。
  1. 统计数据表明,ES的增长要快于Solr,并且已经超越Solr成为最受欢迎的搜索引擎。

5、最后放点基础资料,希望对你有用:

  • ES搭建原理和案例:http://wetest.qq.com/lab/view/300.html?from=content_qcloud
  • 中文权威指南,对ES会入门理解非常有帮助:https://www.elastic.co/guide/cn/elasticsearch/guide/current/mapping-analysis.html
  • 参考接口文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/_cluster_health.html
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据和云计算技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、国内搜索服务现状
  • 2.5、小结一下
  • 4.1、下面简单比较下solr和ES,细节不谈,直接给结论:
  • 4.2、总的来说:
  • 5、最后放点基础资料,希望对你有用:
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档