61阅读

seo与搜索引擎的对话-搜索引擎选择: Elasticsearch与Solr

发布时间:2018-02-05 所属栏目:引擎搜索

一 : 搜索引擎选择: Elasticsearch与Solr

搜索引擎选择: Elasticsearch与Solr

搜索引擎选型调研文档

Elasticsearch简介*

Elasticsearch是一个实时的分布式搜索和分析引擎。[www.61k.com)它可以帮助你用前所未有的速度去处理大规模数据。

它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。

Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

但是Lucene只是一个框架,要充分利用它的功能,需要使用JAVA,并且在程序中集成Lucene。需要很多的学习了解,才能明白它是如何运行的,Lucene确实非常复杂。

Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。

当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。

  • 实时分析的分布式搜索引擎。

  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。

Elasticsearch的上手是非常简单的。它附带了很多非常合理的默认值,这让初学者很好地避免一上手就要面对复杂的理论,

它安装好了就可以使用了,用很小的学习成本就可以变得很有生产力。

随着越学越深入,还可以利用Elasticsearch更多高级的功能,整个引擎可以很灵活地进行配置。可以根据自身需求来定制属于自己的Elasticsearch。

使用案例:

  • 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type、did-you-mean等搜索建议功能。

  • 英国卫报使用Elasticsearch来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。

  • StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。

  • GitHub使用Elasticsearch来检索超过1300亿行代码。

  • 每天,Goldman Sachs使用它来处理5TB数据的索引,还有很多投行使用它来分析股票市场的变动。

但是Elasticsearch并不只是面向大型企业的,它还帮助了很多类似DataDog以及Klout的创业公司进行了功能的扩展。

Elasticsearch的优缺点**:

优点

  1. Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
  2. Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
  3. 处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。
  4. Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
  5. 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。

缺点

  1. 只有一名开发者(当前Elasticsearch GitHub组织已经不只如此,已经有了相当活跃的维护者)
  2. 还不够自动(不适合当前新的Index Warmup API)

Solr简介*

Solr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。

Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。Solr强大的外部配置功能使得无需进行Java编码,便可对 其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制。

因为2010年 Apache Lucene 和 Apache Solr 项目合并,两个项目是由同一个Apache软件基金会开发团队制作实现的。提到技术或产品时,Lucene/Solr或Solr/Lucene是一样的。

Solr的优缺点

优点

  1. Solr有一个更大、更成熟的用户、开发和贡献者社区。
  2. 支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。
  3. Solr比较成熟、稳定。
  4. 不考虑建索引的同时进行搜索,速度更快。

缺点

  1. 建立索引时,搜索效率下降,实时索引搜索效率不高。

Elasticsearch与Solr的比较*

当单纯的对已有数据进行搜索时,Solr更快。

elasticsearch 搜索引擎选择: Elasticsearch与Solr

当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。

elasticsearch 搜索引擎选择: Elasticsearch与Solr

随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。

elasticsearch 搜索引擎选择: Elasticsearch与Solr

综上所述,Solr的架构不适合实时搜索的应用。

实际生产环境测试*

下图为将搜索引擎从Solr转到Elasticsearch以后的平均查询速度有了50倍的提升。

elasticsearch 搜索引擎选择: Elasticsearch与Solr

Elasticsearch 与 Solr 的比较总结

  • 二者安装都很简单;
  • Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
  • Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
  • Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
  • Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。

Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

其他基于Lucene的开源搜索引擎解决方案*

  1. 直接使用 Lucene

说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作。

优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。

缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search)搜索方案的可扩展性有待进一步完善

  • Katta

说明:基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。

优点:开箱即用,可以与 Hadoop 配合实现分布式。具备扩展和容错机制。

缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。因为需要支持分布式,对于一些复杂的查询需求,定制的难度会比较大。

  • Hadoop contrib/index

说明:Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。

优点:分布式建索引,具备可扩展性。

缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。

  • LinkedIn 的开源方案

说明:基于 Lucene 的一系列解决方案,包括 准实时搜索 zoie ,facet 搜索实现 bobo ,机器学习算法 decomposer ,摘要存储库 krati ,数据库模式包装 sensei 等等

优点:经过验证的解决方案,支持分布式,可扩展,丰富的功能实现

缺点:与 linkedin 公司的联系太紧密,可定制性比较差

  • Lucandra

说明:基于 Lucene,索引存在 cassandra 数据库中

优点:参考 cassandra 的优点

缺点:参考 cassandra 的缺点。另外,这只是一个 demo,没有经过大量验证

  • HBasene

说明:基于 Lucene,索引存在 HBase 数据库中

优点:参考 HBase 的优点

缺点:参考 HBase 的缺点。另外,在实现中,lucene terms 是存成行,但每个 term 对应的 posting lists 是以列的方式存储的。随着单个 term 的 posting lists 的增大,查询时的速度受到的影响会非常大

转载:http://blog.csdn.net/jameshadoop/article/details/44905643

二 : 植入式广告与搜索引擎广告的对比

  首先我们要明确一个概念,那就是植入式广告究竟是那种模式,其实,植入式广告,有时也称作为植入式营销,业界通常有一种误解,认为一定是要将产品或服务的广告信息植入到一定的影视动画场景或者故事情节中,才可以称得上是植入式广告。其实远远不是这样,以文字植入方式渗透到各个网站的互联网广告,才是真正最大规模的植入式广告。而搜索引擎广告无疑就是借助搜索引擎的强大流量而滋生出来的一种广告模式,目前主要以竞价排名和关键词搜索为主基调。那么,植入式互联网广告和搜索引擎广告相比各有什么优劣呢?

  首先,植入式广告的一个核心理念是广告信息与所处场景的内在逻辑性,这种逻辑性并不是一种简单的相关性。比如,可能在一款足球比赛的游戏中植入了可口可乐的相关广告信息,足球比赛和可口可乐没有太大的相关性,但两者却存在内在的逻辑,和可口可乐一贯使用的体育营销传播信息高度契合。这就是一种默契,也是被人们接受的一种内在联系,不是简单的一个超级链接就可以达到这种效果。

  而搜索引擎广告是指利用搜索引擎、分类目录等具有在线检索信息功能的网络工具进行网站推广的方法。由于搜索引擎的基本形式可以分为网络蜘蛛型搜索引擎(简称搜索引擎)和基于人工分类目录的搜索引擎(简称分类目录),因此搜索引擎推广的形式也相应地有基于搜索引擎的方法和基于分类目录的方法,前者包括搜索引擎优化、关键词广告、竞价排名、固定排名、基于内容定位的广告等多种形式,而后者则主要是在分类目录合适的类别中进行网站登录。随着搜索引擎形式的进一步发展变化,也出现了其他一些形式的搜索引擎,不过大都是以这两种形式为基础。搜索引擎推广的方法表现形式比较单一,就是通过关键词汇搜索来吸引点击量,在这一点上,新兴的植入式互联网广告有很多优势。

  其次,植入式广告实现了智能表现,广告接触完全由受众主动式触发,当受众对文章内的关键词感兴趣时,只要将鼠标移到关键词上,关键词附近就会出现与其相关的文字、图片、轮播、flash、视频等形式丰富且表现力强的悬浮广告。受众可以阅读广告内容,还可以点击该广告进入包含广告内容的链接网站。人性化设计更方便,受众更直接,更有价值。而搜索引擎网站,主要是将其他网站的超链抓至自己名下,用关键词作为主线,通过竞价排名的方式,实现了流量至广告收入的转换。搜索引擎虽然通过竞价排名突出了某些关键词,但这仅仅是类似目录阅读的范畴,广告的价值体现不如植入式广告来的直接和便捷。

  第三,植入式广告可以实时跟踪网民行为,精准记录每一个关键词的展示数、点击数及露出时间,为用户提供精细、可靠的数据,用户可根据展示、点击数等按实效付费,最大程度节约了广告成本。植入式广告不需要专门在网页中开辟一个方块发布广告,广告只是正文的一部分。传统的条幅广告、匹配广告等等的模式在你的网站还可以继续运作,新的模式只是网站广告模式的一种扩充。而搜索引擎广告只有通过搜索才能看到,且只能看到当前关键字的搜索结果,而植入式广告只要上网浏览信息时就有机会看到,同一网页中呈现多个关键字,广告出现机会多。而且文中广告显示在网页正文内,受众关注度高。

  最后,搜索广告本身发展的诸多不稳定因素,给整个搜索引擎广告行业和广告主的决定带来了相当的冲击。首当其冲的是困扰企业网站的恶意点击,不管是竞争者消耗对手的广告成本的点击行为、搜索引擎广告联盟网站为了获取自己相应的广告佣金的点击行为、竞价排名代理服务商为了自身代理佣金的点击行为,还是访客无意间的误点击行为,都实实在在地增加了广告主的广告成本开支。而以点睛(clickeye)文中广告这种植入式广告为例,它可以按单击计费、千人成本计费、来电效果付费、包词付费等模式付费,在所规定的价格基础之上,可以由用户自由定制。此外,用户还可以设定每天在点睛(clickeye)广告的最高消费额,以此控制某一时间段内点睛(clickeye)广告投放的平均日消费额和总消费额。同时也通过各种手段,竭尽全力防止恶意点击。

三 : 做站感悟之略谈三大搜索引擎的对比

做站有一段时间了,在这段时间里,对搜索引擎有了新的认识--首先立场不同了,自然认识也不同了。以前是作为搜索引擎的使用者,只是关心搜索引擎能不能正确的找到我需要的资料。现在立场不同了,成了搜索引擎的上游内容提供者,可以近距离观察搜索引擎的工作情况,对搜索引擎有了深入的认识。特别是本站下定决心更换新域名(从www.myhosts.cn换www.playhosts.com)前后,对搜索引擎的工作特别关心,每天都注意观察三大搜索引擎的收录页面数,有了一些体会,下面给大家随便谈一下,不当之处,请高手指正:


1、Google
Google无疑是搜索引擎中的老大,所以也是最牛B的搜索引擎,说它牛,现在倒不是说他别的NB(比如创新能力之类),而是说他不会轻易收录你的网站。

Google收录网站条件简直太苛刻了,即使你的网站有了一些原创文章,即使你和一些PR值不是0的网站建立了友情链接,即使你用BLOG宣传了自己的网站(过去这一招应该很灵,现在似乎Google采取措施了,估计BLOG母网站的PR值不会被直接采用了,但对于Google收录还是有所帮助的),即使你主动提交了,Google还是用它原来的慢节奏工作,也许过了几个月,你会发现自己的网站已经被Google收录了,但是往往也只是各首页而已。看到有的帖子说Google的搜索结果是一个月更新一次,每次是20日,看来应该是对的。虽然google还允许你使用sitemap提交你的网站地图,以方便Google搜索你的那些不容易被收录的动态网页。但我发现,你的网站如果没有被收录,或者仅仅被收录个首页,即使提交了Sitemap,Google也不会立即收录你的网页。我推测,可能Google的工作方式是根据你的PR值,如果你的PR值高,即使你没有提交sitemap,它也会收录你的网页;但如果你没有PR值或者PR值低,提交了sitemap,google也会认为你的网页没有价值,不会立刻收录你的网页,或者会把收录你的网页的工作向后排。

俺的网站就是在建立了大约一个半月以后,才被收录的,但也只是收录一个首页而已。又过了大约半个月,才收录了150条。再过了大约半个月,收录达到了2040条,现在也仅仅是2510项。


2、百度(BAIDU)
说完了Google自然是要讲讲Baidu了,先要提出表扬的是,Baidu真是好同志。俺的网站出来没几天,就收录了,才半个月,就收录了1000多条,一个月以后,收录了近2000条,现在(三个月了)收录达到了5460条,工作任劳任怨,没有脾气,该收录的都收录了,查询也非常准确,不像Google,查询一些较新的内容,排前面的都不知道是啥东西,好多都是驴唇不对马嘴。总而言之,绝对是好同志。

但是baidu对于新站,还是有点慢。俺换了域名以后,baidu第二个就收录了俺的新域名(Yahoo第一个),但现在半个月了,还是个首页,没有任何进展。

3、YAHOO中国
说完了上面这两个国内搜索引擎的老大,再说说Yahoo中国。本来Yahoo作为一个目录管理商,一直想搞门户网站的形式,是没有自己的搜索引擎的,一度曾经使用Google的搜索引擎服务。但最近看来门户网站不好做了,开始涉足搜索业了。但Yahoo这个老家伙还是有点真东西,来者不善,气势不小。俺的网站一换域名,马上第一个就收录了,比baidu早了四、五天,到现在为止,新域名用了10天,收录了44项(老域名收录了204项),超过了google,也超过了Baidu。


总结:
总体来看,目前国内Yahoo中国收录网页速度最快,虽然收录页面不是很多,但基本上你发现比较重要的页面都收录了,搜索比较准确,质量比较高;Baidu收录页面的速度次之,但收录页面最多(其实俺没有那么多页面,鬼知道baidu怎么会收录到5000多条),搜索比较准确,收录质量比较高;Google最蜗牛,收录很慢,收录页面也比较少,但还是比Yahoo多。

另外,从本站([url]www.21sn.com[/url] / [url]www.qqee.com[/url])的总访问统计上来看,google的使用者还是多于baidu。本站google真正收录足够数量的帖子还是一个月左右的时间,比baidu晚了近一个月,但来自Google的访问数量还是略微超过了baidu,Yahoo的使用者还是太少--来自yahoo的访问也几乎可以忽略不计,在这方面,倒是来自QQ搜索的数量达到了Google的10%左右,虽然收录页面比较少,但来头不小,估计借助QQ的强大人气,做任何事情都不太难啊(QQ搜索收录myhosts.cn 197项,playhosts.com 仅1项,收录数量一般)。

最后,自从做站这几个月以来,随着对搜索引擎深入了解,对搜索引擎的使用习惯也变化了:如果搜最新的东西,俺就用Yahoo;如果要求搜索返回的结果比较多,比较准确,俺就用Baidu;如果前面两个不行,或者是搜国外的东西,俺就用Google。
本文标题:seo与搜索引擎的对话-搜索引擎选择: Elasticsearch与Solr
本文地址: http://www.61k.com/1123395.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1