精华内容
下载资源
问答
  • 互联网搜索引擎

    千次阅读 2017-09-08 18:42:04
    1 挑战 互联网搜索引擎与一般搜索引擎的区别主要在以下问题。  第一是数据量(scalability)。互联网搜索需要处理的数据量大,如何保证能有效地处理这些数据,保证搜索的完整性,同时搜索速度也要在可接受范围内。...

    说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。

    1 挑战

     互联网搜索引擎与一般搜索引擎的区别主要在以下问题。
     第一是数据量(scalability)。互联网搜索需要处理的数据量大,如何保证能有效地处理这些数据,保证搜索的完整性,同时搜索速度也要在可接受范围内。解决策略:索引时候并行处理,搜索时候分布式处理。
     第二个是如何衡量数据质量,过滤垃圾数据?解决策略是垃圾检测。 
     第三个是互联网的动态性。要处理的数据会有新增和更新,怎么处理?解决策略是链接分析。
     VSM是一种普适算法,可以用在一般或者互联网搜索引擎中。这是它的优点。但它的问题是不能有效的利用网页或者文档的一些特性(例如:网页链接、发布日期、超链接文本等)

    2 组成部分

     这里写图片描述
     
     web searchEngine = Crawler+Indexer+(Inverted) Index + Retriever
     爬虫、索引操作、倒排索引、搜索操作

    2.1 爬虫

     实验室级别爬虫:
      

    1. 种子页面放入优先队列;
    2. 页面抓取;
    3. 解析页面,提取链接,再添加到优先队列;
    4. 从优先队列获得地址,回到2。

      真正在生产环境下的爬虫需要处理:
       

    5. 健壮性。当服务器不响应时候怎么处理;碰到爬虫陷阱(网站动态生成了一堆没用的地址)怎么处理;不能对被抓取的网站造成伤害(宕机),遵守Robot协议;处理不同类型的数据,例如网页、文件、图片等;还有ajax生成的页面怎么处理,用户登陆的页面怎么处理;冗余页面识别;隐藏链接发现。
    6. 抓取策略。一般来说是广度优先(breadth-first)。
    7. 分布式爬虫。
    8. 特定主题的爬虫。只抓取某一类页面的爬虫。
    9. 新页面/新站点发现,特别是与旧的页面没有链接的新页面怎么发现。
    10. 新增页面抓取和更新页面抓取。这些需要处理怎么使用最少的资源实现目的。对新页面要抓取,旧的页面如果更新了,也要抓取更新到搜索引擎。对于旧页面的更新可以考虑一下因素:a、在抓取过程中总结、发现页面的更新频率,有些页面网址更新频率低,那抓取频率也降低。如果是体育新闻类页面,更新频率高,抓取频率也应提高。b、用户访问频率。用户访问频率高的页面,一般是最有用的页面,需要保证这些页面是尽可能最新。

    2.2 索引操作、倒排索引

     创建互联网级别的索引,挑战在两方面:存储和效率。
     这些多数据怎么存储:分布式文件系统GFS、HDFS。
     这么多数据怎么有效地检索:MapReduce—-Hadoop

    2.3.1 链接分析-1

     分析链接关系,提高搜索引擎搜索结果(怎么评估搜索结果,请参考文本搜索系统的评估)。
     标准的信息检索模型(IR)可以应用在互联网搜索(WR)中,但不够高效。原因如下。
     1 IR中人们主要查找图书资源,查找文献资源(literature Information)。WR人们需要查找一个页面,WR是具有导航性质的,一般称为导航搜索。所以分析链接关系可能有所帮助。
     2 网页一般还有其他信息可以作为搜索的线索。例如:布局、标题、链接信息。
     3 网页搜索可能还有其他因素,影响搜索结果。
     综上所述,我们可以通过链接分析、点击次数提高搜索结果。一般来讲会使用机器学习算法,把各个因素综合考虑。

    这里写图片描述
     页面间引用关系,首先注意到的是锚点(anchor text)。锚点一般来说描述了所指向页面的主要内容或者特点。例如上面提交的“文本搜索系统的评估”,所指向的页面就是关系文本检索系统评估方面的内容。
     链接关系的第二个就是入链和出链。出链就像是一个路由器(hub)指向不同页面。入链是一个authority的页面:别人都在证明这个页面可能更有用。这有点像文献中的引用和被引用关系。成熟的解决方案是PageRank,考虑入链的个数以及质量。要注意处理没有入链的页面。
     

    2.3.2 PageRank

     简要描述PageRank算法。
     PageRank 是一个随机访问模型。参数 α= 跳出本页面到其他页面(在浏览器中输入一个地址)的概率; 1α= 在页面上随机选择一个连接进行下去。
     如果一个页面有很多的入链(inlinke),也就是说入链数量高,那这个页面就更可能被访问到。因为有更多的可能从一个页面链接到这个页面。
     如果某个页面L1的某个入链L4有很多的入链,这些链接和L1形成一个间接链接关系。因为L4有很多的入链,L4的访问概率增加,那从L4到L1的概率也会增加。从这个角度看,算法也捕捉到了间接链接的关系。
     PageRank计算:转移矩阵、访问到某个页面的概率。
     这里写图片描述
     
     这里写图片描述

     这里写图片描述

     PageRank的计算可以从线性代数的角度理解,也可以理解为是图的传播。
     PageRank可以用于计算某个主题相关页面的PageRank,也可以用于社交网络或者图的情形。

    2.3.3 HITS

     直觉假设:被广泛引用的页面是一个好的Authority页面;引用了很多连接的页面是一个好的Hub页面。
     这是一个相互增强的思想。
     

    2.4 搜索-2 排序 Ranking

     这是web搜索的最后一部分了。这里主要用机器学习的方法考虑各个因素,提高排序质量。
     现在我们有检索模型(BM25)可以计算查询语句与文档的相似度,我们也知道锚点、链接分值(PageRank)可以影响排序。问题是如何把这些因素结合起来,获得一个好的排序函数?用机器学习模型。
     假设: p(R=1|Q,D)=s(X1(Q,D),...Xn(Q,D),λ) λ 是参数,是一个向量。
     训练数据:为了获得参数,我们首先要获得训练数据。训练数据要包含每个文档对每个查询的相关度,形成一个(文档、查询、相关度)的数据。这些信息可以是很准确的用户处理的数据,也可以是基于点击量估计的(假设被点击的文档比跳过的文档更相关)。
     举例:逻辑回归模型(logistic regression)。最简单的模型。假设影响因素之间的关系是线性的。 Xi(Q,D) 是一个特征, β 是参数,模型如下:
      logP(R=1|Q,D)1P(R=1|Q,D)=β0+ni=1βiXi
      P(R=1|Q,D)=11+exp(β0ni=1βiXi)
      β0+ni=1βiXi 值越大, P(R=1|Q,D) 值也就越大,越相关(这与视频中讲的矛盾了,之后求证一下)。
     举例子。图中选择的是最大似然求解,此外还有最小二乘法。当然这里就涉及到乘法和加法的区别了。 β 参数学习到之后就可以用于文档排序了。
     
     这里写图片描述

     还有更多选择的算法用来直接提高搜索结果(MAP,nDCG)。可以阅读参考文献
     •Tie-Yan Liu. Learning to Rank for Information Retrieval. Foundations and Trends in Information Retrieval 3, 3 (2009): 225-331.
     •Hang Li. A Short Introduction to Learning to Rank, IEICE Trans. Inf. & Syst. E94-D, 10 (Oct. 2011): n.p.
     

    3 互联网搜索引擎的未来发展

    3.1 趋势

     说的是趋势,其实很多已经实现了。
     下一代搜索引擎被认为更定制化,形成垂直搜索引擎。垂直搜索引擎被认为更好的原因是 1 针对特定的一个群体,他们拥有共同的基本概念。2 可以更个性化(personalization)。
     搜索引擎将会不断自动学习。
     搜索、推荐、导航集一体的搜索引擎。
     不再只是搜索,而是完成特定任务。例如购物。

    3.2 新功能设想

      这里写图片描述
      
      这里写图片描述
      
      从用户、数据、服务三个角度组合形成不同的产品。

    3.3 更智能化的途径

     

     这里写图片描述

    展开全文
  • 网络空间搜索引擎全方位评测

    千次阅读 2018-12-12 17:27:49
    目录 最佳设计奖:Shodan 最佳学术奖:Censys 最佳先锋奖:Zoomeye(钟馗之眼) 最佳潜力奖:Fofa 从前有座山,山上有座庙,...如果说GPS绘制出了世界的地图,那么网络空间搜索引擎就是整个互联网的地图。 自...

    目录

    最佳设计奖:Shodan

    最佳学术奖:Censys

    最佳先锋奖:Zoomeye(钟馗之眼)

    最佳潜力奖:Fofa


    从前有座山,山上有座庙,庙里有个老和尚和小和尚……这个简短无尽的儿童故事是很多人都知晓的,整个故事从开头就定义了空间的概念,让我们能够清楚的知道老和尚和小和尚在山上的庙里,网络空间同样如此。如果说GPS绘制出了世界的地图,那么网络空间搜索引擎就是整个互联网的地图。

    自从互联网诞生的那一刻,网络空间也由混沌之初快速扩张。在互联网中各种网络设备物物相连,因此互联网基础上的延伸和扩展,用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,形成万物互联的物联网(IOT,Internet of things)。通过网络空间搜索引擎,我们可以快速的知道,全世界大约有多少网络摄像头,有多少服务器,有多少服务器采用Apache等。网络空间搜索引擎的作用就是将互联网上公开的网络资产收集和整理,以此方便人们进行查阅和利用。

    最佳设计奖:Shodan

    简介

    全球最早的开放式网络空间应该非shodan莫属,也是目前最为知名的一个网络空间搜索引擎。Shodan于2009年诞生,每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息,shodan主要是针对服务器、网络摄像头、交换机、路由器等网络基础设备做扫描。

    特点

    Shodan能够成为全球最为出色的网络空间搜索引擎并非浪得虚名。为了方便开发人员更好的接入shodan的API接口,shodan开发了11个代码库,分别为Python,Ruby,PHP,C#,Go,Haskell,Java,Node.js,Perl,PowerShell和Rust。

    1.png

    除了这11大代码库以外,shodan还开发了自己的浏览器插件。Shodan浏览器插件的作用不是很大,主要就是查看当前访问web服务器所开放的端口,仅此而已。

    2.png

    Shodan创建账号是免费的,但是可以免费查询到的信息少的可怜。如果要进一步查询更多的信息,你需要购买shodan的会员服务。Shodan的会员费用是49美元,值得庆幸的是一次付费即可享受终身会员服务。

    3.png

    除了个人版本的,shodan还推出了企业版和企业高级版的收费。Shodan上都是英文介绍,我这边列出一个中文表格,方便各位比较。

    5.png

    Shodan上还有一个功能叫做scanhub。主要是将你Nmap扫描的结果导入到scanhub里面,形成一个可视化数据。但是这个功能是收费的,1GB/9美元/每月。个人感觉这个价格还是有些高了,并且功能并不是那么实用,还不如直接用d3.js开发更实用。

    6.png

    Shodan的images功能感觉非常地高大上,以图片的形式展示网络上开放的一些设备,除了远程桌面连接界面外,还有摄像头界面、工控控制界面等。

    7.png

    最屌炸天的设计还是shodan 3D功能,以一个3D球形展示搜索出来的网络设备。

    8.png

    Shodan还开发出了自己的CLI应用程序,用户可以通过shell命令来使用shodan。

    9.png

    除此之外,shodan还有一个Honeypot Or Not功能,可以查看该服务器是否为蜜罐。

    10.png

    小结

    总的来说,shodan只是单纯的对IPV4的地址做一个扫描,扫描结果还是比较满意的。除了web服务器以外,还有交换机、路由器、网络摄像头、工控设备等扫描。而且对扫描数据的整理得也非常不错,比如images功能、3D功能等。除此之外,还开发了Firefox和Chrome的插件,11大代码库和CLI程序,也使得后期开发更加简便高效。但是shodan主要只是针对IPV4进行扫描,却忽视了针对域名的扫描,如果能够加上域名扫描就更完美了。

    最佳学术奖:Censys

    简介

    在全部的网络空间搜索引擎当中,censys绝对是一个另类,因为censys不包含任何收费项目,并且全部数据都可以免费下载。Censys创建之初的目的主要是用作学术研究,并且将它定义为一个公益项目。该项目由密歇根大学和Rapid7公司共同合作完成。

    特点

    在介绍censys之前,请允许我先介绍一下Sonar项目。Rapid7创建了一个项目名为Sonar,主要是通过Zmap对全球的DNS服务器做扫描,比如收集转发DNS记录(ANY),反向DNS记录(PTR),SSL证书扫描(443端口),HTTP 80端口扫描和UDP扫描等。而Rapid7又会将扫描到的数据汇总到scans.io。说起scans.io和Zmap,那么我又得说起J. Alex Halderman这个人。J. Alex Halderman是密歇根大学的电脑科技教授和计算机工程师,他带领着他的团队开发了zmap扫描器,censys网络空间搜索引擎和scans.io存储库。

    17.png

    整个censys的项目主要是又sonar项目,Internet-Wide Scanning Research项目和The Meta Intelligence项目收集数据,然后汇总到scans.io存储库,最后再由censys对数据进行索引,以此方便人们查阅和研究。

    11.png

    市面上大部分的网络空间搜索引擎的数据下载是收费的,但是在censys上可以免费下载全部数据。

    12.png

    Censys除了基本的IPV4查询以外,还可以针对域名和证书进行查询。

    13.png

    以下是针对freebuf的一个扫描,会把和freebuf相关的各种web服务器列出来。

    14.png

    得到censys认证的用户还可以使用SQL语句对数据进行搜索。

    15.png

    同时还可以在线生成报告。

    16.png

    小结

    总体来说,censys不仅仅只扫描了IPV4地址,还对域名和证书进行扫描。Censys的数据种类肯定是要比一般的网络空间搜索引擎还要多的。但是针对数据可视化的功能就不如shodan了,并且censys也没有代码库,如果要对censys进行二次开发还是比较费力的。

    最佳先锋奖:Zoomeye(钟馗之眼)

    简介

    当初zoomeye上线后,很多人说zoomeye就是中国版本的shodan,实际上zoomeye和shodan还是有一些差别的。Shodan主要是对设备指纹进行扫描,但是zoomeye除了设备指纹的扫描以外,还增加了对域名和web服务器的指纹扫描。而zoomeye也是中国首个半开放式的网络空间搜索引擎,其意义非同凡响。

    特点

    在搜索界面上,zoomeye就展示了和shodan的不同之处。不仅仅可以搜索主机设备,也可以对域名进行搜索。

    1.png

    根据zoomeye官网的介绍,zoomeye现在已经收集了7亿多台互联网设备的信息,1亿多个域名的信息。

    2.png

    而且zoomeye的高级搜索功能也非常实用,用户体验很不错。

    3.png

    同时,zoomeye的视角功能能够让用户快速查阅搜索设备在全球的分部情况。

    4.png

    Zoomeye还开放了海盗榜计划,每个用户可以根据自己对zoomeye的贡献值获得更多的访问权限。

    5.png

    如果要加入海盗榜,那么用户就需要参与到D计划当中。

    6.png

    虽然zoomeye针对普通用户是免费的,但是在商业版也有自己的收费项目,分别为ZoomEye 商业版,ZoomEye 数据服务和ZoomEye API收费版。

    7.png

    小结

    Zoomeye的运行模式还是非常不错。通过商业收费获取利润,再通过D计划源源不断的获取新的数据。并且zoomeye的搜索速度还非常快,用户体验也十分良好。同时,zoomeye在海内外都有较强的知名度。但是zoomeye相对于censys来说,域名的收集数量还有所欠缺,并且在针对设备指纹扫描的时候可以参考shodan,列出更多的可视化数据服务。

    最佳潜力奖:Fofa

    简介

    FOFA是白帽汇推出的一款网络空间资产搜索引擎。它能够帮助用户迅速进行网络资产匹配、加快后续工作进程。例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

    特点

    FOFA在其规则指定上也是一个另类。FOFA用户如果加入FOFA的会员,那么是可以赚取外快的。一旦加入FOFA的会员,并且提交的POC被通过,那么该会员可以收到一定的赏金。

    10.png

    同时fofa还面向企业和会员推出了PC平台客户端。企业可以在客户端上购买自己想要的POC,而会员也在客户端上查看自己写的POC。Fofa的客户端还有一个作用,就是可以三分钟根据POC扫遍全球的网络,查看哪些设备存在漏洞。

    9.png

    据说fofa在海内外布置了大量的扫描服务器,对全球的网络资产做扫描。具体是否属实我也不清楚,但是可以知晓的是fofa能够针对html正文进行代码级别的全文检索 ,并且数据量十分庞大,光是域名的收集就达到两亿多条。以下是针对freebuf的扫描情况。

    11.png

    针对扫描结果,fofa可以用全球视角,中国视角和端口饼状图来展示。

    12.png

    小结

    虽然fofa开始的时间比较晚,但是在搜索结果,数据量和数据整理方面还是非常不错的,并且随着越来越多的会员加入,fofa在POC的积累上也会慢慢起色。fafo目前虽欠缺的不是技术,也不是数据持有量,而是需要一个时间的酝酿和市场的推广。

    扩展思路

    总体来说,个人认为中国的网络空间搜索引擎比国外的体验更加良好,数据量也更全面,但是还是存在一定进步的空间。以下是我提出网络空间搜索引擎的一些建设性意见。

    数据获取

    zoomeye采用的是用户和自己的扫描器两个方面来收集数据,shodan和fofa主要是依靠自己来进行扫描,而censys主要是通过学院和两家公司的项目来一起收集数据。在收集数据的过程中,我们可否能够进行数据共享以此来查缺补漏?比如你fofa自己收集数据,但是你也可以下载censys的数据来做配对,查看自己缺了哪些数据。同时,一个标准的网络空间搜索引擎应该有非常庞大的扫描节点,如果你在中国架设扫描节点,那么你是没有办法扫描到一些境外服务器和网站的,原因你懂的。扫描节点需要根据不同国家的政策来进行架设。

    数据种类

    一个标准的网络空间搜索引擎,应该包含HTML信息、端口信息、IP信息、域名信息、SSL证书信息、地理位置、服务器供应商信息等。总体来说,就是需要获取网络世界中全部开放出来的网络资产。

    数据存储

    在获得庞大的数据量后,存储是一个大问题。大部分企业主要是采用的NOSQL类型数据库来做存储,然后再采用ES来做索引,通过同步脚本来对数据进行同步。最后由WEB UI把ES的数据抽取出来。如果用户访问量特别庞大的化,那么可以采用hadoop假设多个节点,以此来增加访问速度。

    数据可视化

    针对数据可视化操作,shodan做的是最优秀的。国内的网络空间搜索引擎可以参考shodan的做法。

    数据利用

    zoomeye有seebug漏洞平台做支撑,而fofa则有会员提交的POC做支撑。获取到大量数据后,我们需要采用各种各样的POC和指纹信息来做扫描,因为POC和设备指纹信息的存储量就成为了这个网络空间搜索引擎利用率的关键。

    数据误报

    在采集数据的过程中,或多或少都会采集到一些错误的数据。比如把apache伪装成IIS。在采集数据的过程中,最好加入多重验算机制,以防出现数据误报的情况。

    总结

    除了以上的网络空间搜索引擎以外,还有很多我没有做介绍,比如傻蛋搜索、IVRE开源网络空间搜索引擎框架等。网络空间搜索引擎就像是一把双刃剑,用在正处,可以快速和维护众多网络设备的漏洞;用在坏处,可以快速入侵全球存在漏洞的网络设备。

    包括前段时间大量IOT设备被当作肉鸡进行DDOS攻击,那么攻击者主要是采用了网络空间搜索引擎来获得全球大量IOT设备的IP地址。同时还有前端时间大量Mongodb,ES等开放式数据库遭到骇客入侵,被删除了全部数据。这些黑客组织是否又是采用网络空间搜索引擎来获得入侵目标的全部IP?不由得想起前段时间笔者闲着无聊,在网络空间搜索为验证的mongodb数据库。结果,笔者拿到了泰国数个服务器供应商的全部客户登陆凭证,里面包含全部客户的用户名、邮箱、信用卡号、明文密码等。同时还查阅到了中国某云考勤系统大量员工数据,包括手机号、年龄等等。还有某个省的监控服务器的备份数据,包含该省份大量进出流量的HTTP信息,比如朋友圈视频地址、后台登陆地址等等。而我所获得信息只是那网络空间中的冰山一角。

    2008年上映的科幻片《鹰眼》(Eagle Eye),片中美国军方开发的鹰眼系统就是基于人工智能和物联网技术,通过遍布各地的网络终端设备监视、引导男主人公的行为,随意拨打电话、控制红绿灯乃至地铁等等所有物联网设备,用普通人作为棋子,设计了一个精密的杀局,美国大片的结尾从来不出人意料,超级英雄力挽狂澜拯救世界,但是整个过程对人工智能和物联网的呈现,在当前的技术条件下,正逐步成为现实。

    如果网络空间用在正处,那么可以对某个地区的网络空间做安全评估,迅速挖掘到存在漏洞的服务器,并且对其进行修补。同时还可以开发网络威胁感知系统,实时监控客户服务器是否存在漏洞等。同时,网络空间引擎不断的暴露这些漏洞,网络运营商不得不去面对这些问题,网络空间搜索引擎在推动网络安全前进的同时,也在让越来越多的人重视网络安全。

    展开全文
  • 搜索数据取自百度网站,可实现站内搜索互联网搜索,速度超快
  • 搜索引擎

    千次阅读 2019-07-14 18:58:09
    搜索引擎(Search Engine)是指:根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。比如百度就是一款比较流行的...

    搜索引擎

    搜索引擎
    一. 什么是收索引擎
    搜索引擎(Search Engine)是指:根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。比如百度就是一款比较流行的搜索引擎。

    二.常用的收索引擎有哪些,区别
    搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表
    全文索引、目录索引的区别
    1、搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。
    2、搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。
    3、在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录。
    4、搜索引擎中各网站的有关信息都是从用户网页中自动提取的,用户的我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。

    三.项目中如何使用ES,

    1.下载安装elasticsearch
    2.下载安装elasticsearch-head插件,图形化界面操作
    3.将原有项目数据库数据和ES库连接同步,此处用到工具elasticsearch-jdbc
    4.将查询或操作的数据源切换到ES库

    四.ES的HEAD插件有什么作用,
    1.显示集群的拓扑,并且能够执行索引和节点级别操作
    2.搜索接口能够查询集群中原始json或表格格式的检索数据
    3.能够快速访问并显示集群的状态
    4.有一个输入窗口,允许任意调用RESTful API。这个接口包含几个选项,可以组合在一起以产生不同的结果;
    5.请求方法(get、put、post、delete),查询json数据,节点和路径
    6.支持JSON验证器
    7.支持重复请求计时器
    8.支持使用javascript表达式变换结果
    五.ES如何配置IK分词器,常用分词器区别
    https://www.cnblogs.com/buxiangbuliang/p/9488162.html
    六.如何自定义词库
    https://blog.csdn.net/Barbarousgrowth_yp/article/details/80242811

    七.如何实现ES和数据库同步
    https://blog.csdn.net/qq_40670946/article/details/82181005

    八.项目使用情况,以及解决
    1.由gc引起节点脱离集群

    因为gc时会使jvm停止工作,如果某个节点gc时间过长,master ping3次(zen discovery默认ping失败重试3次)不通后就会把该节点剔除出集群,从而导致索引进行重新分配。

    解决方法:

    (1)优化gc,减少gc时间。

    (2)调大zen discovery的重试次数(es参数:ping_retries)和超时时间(es参数:ping_timeout)。

    后来发现根本原因是有个节点的系统所在硬盘满了。导致系统性能下降。

    2.out of memory错误

    因为默认情况下es对字段数据缓存(Field Data Cache)大小是无限制的,查询时会把字段值放到内存,特别是facet查询,对内存要求非常高,它会把结果都放在内存,然后进行排序等操作,一直使用内存,直到内存用完,当内存不够用时就有可能出现out of memory错误。

    解决方法:

    (1)设置es的缓存类型为Soft Reference,它的主要特点是据有较强的引用功能。只有当内存不够的时候,才进行回收这类内存,因此在内存足够的时候,它们通常不被回收。另外,这些引 用对象还能保证在Java抛出OutOfMemory 异常之前,被设置为null。它可以用于实现一些常用图片的缓存,实现Cache的功能,保证最大限度的使用内存而不引起OutOfMemory。在es的配置文件加上index.cache.field.type: soft即可。

    (2)设置es最大缓存数据条数和缓存失效时间,通过设置index.cache.field.max_size: 50000来把缓存field的最大值设置为50000,设置index.cache.field.expire: 10m把过期时间设置成10分钟。

    3.无法创建本地线程问题

    es恢复时报错: RecoverFilesRecoveryException[[index][3] Failed to transfer [215] files with total size of [9.4gb]]; nested: OutOfMemoryError[unable to create new native thread]; ]]

    刚开始以为是文件句柄数限制,但想到之前报的是too many open file这个错误,并且也把数据改大了。查资料得知一个进程的jvm进程的最大线程数为:虚拟内存/(堆栈大小10241024),也就是说虚拟内存越大或堆栈越小,能创建的线程越多。重新设置后还是会报那这错,按理说可创建线程数完全够用了的,就想是不是系统的一些限制。后来在网上找到说是max user processes的问题,这个值默认是1024,这个参数单看名字是用户最大打开的进程数,但看官方说明,就是用户最多可创建线程数,因为一个进程最少有一个线程,所以间接影响到最大进程数。调大这个参数后就没有报这个错了。

    解决方法:

    (1)增大jvm的heap内存或降低xss堆栈大小(默认的是512K)。

    (2)打开/etc/security/limits.conf ,把soft nproc 1024这行的1024改大就行了。

    4.集群状态为黄色时并发插入数据报错

    [7]: index [index], type [index], id [1569133], message [UnavailableShardsException[[index][1] [4] shardIt, [2] active : Timeout waiting for [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@5989fa07]]

    这是错误信息,当时集群状态为黄色,即副本没有分配。当时副本设置为2,只有一个节点,当你设置的副本大于可分配的机器时,此时如果你插入数据就有可能报上面的错,因为es的写一致性默认是使用quorum,即quorum值必须大于(副本数/2+1),我这里2/2+1=2也就是说要要至少插入到两份索引中,由于只有一个节点,quorum等于1,所以只插入到主索引,副本找不到从而报上面那个错。

    解决方法:

    (1)去掉没分配的副本。

    (2)把写一致性改成one,即只写入一份索引就行。

    5.设置jvm锁住内存时启动警告

    当设置bootstrap.mlockall: true时,启动es报警告Unknown mlockall error 0,因为linux系统默认能让进程锁住的内存为45k。

    解决方法:设置为无限制,linux命令:ulimit -l unlimited

    6.错误使用api导致集群卡死

    其实这个是很低级的错误。功能就是更新一些数据,可能会对一些数据进行删除,但删除时同事使用了deleteByQuery这个接口,通过构造BoolQuery把要删除数据的id传进去,查出这些数据删除。但问题是BoolQuery最多只支持1024个条件,100个条件都已经很多了,所以这样的查询一下子就把es集群卡死了。

    解决方法:用bulkRequest进行批量删除操作。

    7.org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream

    原因:es节点之间的JDK版本不一样

    解决方法:统一JDK环境

    8 . org.elasticsearch.client.transport.NoNodeAvailableException: No node available

    1) 端口错

    client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));

    这里9300 写成9200的话会No node available

    要是你连的不是本机,注意IP有没有正确

    2 )jar报引用版本不匹配,开启的服务是什么版本,引用的jar最好匹配(这个我没有去试,反正我的是匹配的)

    3) 要是你改了集群名字,还有设置集群名字

    Settings settings = ImmutableSettings.settingsBuilder().put(“cluster.name”, “xxx”).build(); client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress(ipAddress, 9300));

    4)集群超过5s没有响应

    解决方法1.设置client.transport.ping_timeout设大

    2.代码内加入while (true) {

    try {

    bulk.execute().actionGet(getRetryTimeout());

    break;

    }

    catch (NoNodeAvailableException cont) {

    Thread.sleep(5000);

    continue;

    }

    }

    9.elasticsearch 近日被发现漏洞,可以远程执行任意代码,由于 elasticsearch提供了http接口,导致可能通过CSRF等方式借助恶意页面浏览发生攻击 。

    漏洞影响版本:

    elasticsearch 1.2以下

    测试代码:

    http:// ESSERVERIP :9200/search?source=%7B%22size%22%3A1%2C%22query%22%3A%7B%22filtered%22%3A%7B%22query%22%3A%7B%22match_all%22%3A%7B%7D%7D%7D%7D%2C%22script_fields%22%3A%7B%22%2Fetc%2Fhosts%22%3A%7B%22script%22%3A%22import%20java.util.%3B%5Cnimport%20java.io.%3B%5Cnnew%20Scanner(new%20File(%5C%22%2Fetc%2Fhosts%5C%22)).useDelimiter(%5C%22%5C%5C%5C%5CZ%5C%22).next()%3B%22%7D%2C%22%2Fetc%2Fpasswd%22%3A%7B%22script%22%3A%22import%20java.util.%3B%5Cnimport%20java.io.%3B%5Cnnew%20Scanner(new%20File(%5C%22%2Fetc%2Fpasswd%5C%22)).useDelimiter(%5C%22%5C%5C%5C%5CZ%5C%22).next()%3B%22%7D%7D%7D&callback=jQuery111102863897154977554_1400571156308&=1400571156309

    浏览器会返回/etc/passwd内容

    解决方案 :

    1、在配置文件elasticsearch.yml里设置script.disable_dynamic: true

    2、严格限制可访问elasticsearch服务的IP地址

    九.个人补充
    简介
    ElasticSearch(以下简称ES)是一个基于Lucene构建的开源(open-source),分布式(distributed),RESTful,实时(real-time)的搜索与分析(analytics)引擎。它可以让你在浏览数据时具备非常快的速度和优秀的可扩展性。它用于全文索引、结构化数据索引、数据分析以及三者的结合。它可以运行在你的笔记本上,或者扩展至数百台的服务器节点上来处理PB级的数据。 ES建立在Lucene的基础之上,但是Lucene仅仅是一个库,如果要发挥它的优势,你必须使用它然后再结合自己的开发来构造一个具体的应用。更坏的是你必须了解Lucene才能更好的使用它,但是Lucene本身就很复杂。所以ES意在取Lucene的优点,隐蔽其复杂性来构造一个简洁易用的RESTful风格的全文搜索引擎。
    与关系型数据库的名词对照
    Relational DB => Databases => Tables => Rows => Columns Elasticsearch => Indices => Types => Documents => Fields
    设计原理
    创建一个索引—index,shard,cluster
    将数据添加到ES的前提是,我们需要一个索引(名词):index——一个存储与这个索引相对应数据的地方。实际上,index仅仅只是一个命名空间来指向一个或多个实际的物理分片(shard)。
    一个分片(shard)是一个比较低层的工作单元来处理这个索引(index)的所有数据的一个切片(slice)。一个shard实际上是一个Lucene实例,在它的能力范围内拥有完整的搜索功能(在处理它自己拥有的数据时有所有的功能)。我们所有文档的索引indexed(动词)和存储工作都是在shard上,但这是透明的,我们不需要直接和shard通信,而是和我们创建的index(名词)通信。
    shards是ES将数据分布式在你的集群的关键。想象下shards是数据的容器,文档存储在shards里,而shards被分配在集群的每一个节点Node里。当你的集群规模增长和降低时,ES会自动的在Nodes间迁移shards以保持集群的负载均衡。
    shard的分类与作用:
    shard可分为primary shard和replica shard。 在一个index里的每一个文档都属于一个单独的primary shard,所以primary shard的数量决定了你最大能存储的数据量(对应于一个index)。
    注意:shard是归属与index的,而不是cluster的。
    replica shard是primary shard的拷贝。replica有两个作用: 1.冗余容灾 2.提供读请求服务,例如搜索或读取文档
    primary shard的数量在索引创建时确定后不能修改,replica可以在任何时候修改。 例: 见Figure2,在2.1的集群上创建一个index,拥有3个primary shards以及1个replica shards。

    由于只有一台Node,而Primary shard的Replicas与其在同一台节点上毫无意义,所以集群没有初始化replicas,这时添加另外一台Node。见Figure3,每一个primary shard初始化了一个replica。

    2.3 水平扩容
    当我们继续添加一台节点时,Node1和Node2中的各取一个shard移动到了Node3.见Figure4

    这样,我们每一台Node上只有两个shard。这就意味着每一台Node的硬件资源(CPU,RAM,I/O)将会被更少的shards共享,提高了每一个shard的性能。在这个案例中,6个shards最多可使用6台Node,这样每个shard就可以使用100%的node硬件资源。
    现在我们修改replica的数量到2,如Figure5

    这样我们就有了一个3primary shards,6replica shards的Cluster。我们可将Node提高到9台。水平扩容了集群性能。
    2.4 容灾
    我们杀掉的是master节点。一个Cluster必须要有master以保证集群的功能正常。所以集群要做的第一件事是选择一个新的master:Node2. 当我们杀掉1节点时,Primary shards 1和2丢失了。如果丢失了primary shard,index(名词)将不能正常的工作。此时P1和P2的拷贝存在Node2和Node3上。所以此时新升级的master(Node2)将做的第一件事就是将NODE2和NODE3上的replica shard1和replica shard2升级为primary shard。此时如果我们杀掉NODE2,整个集群的容灾过程同理,还是可以正常运行。
    这时,如果我们重启了NODE1,cluster将会重新分配缺少的两个replica shards(现在每个primary shard只有2个replicas,配置是3个,缺少2个)。如果NODE1的数据是旧的,那么它将会继续利用它们,NODE1只会从现在的Primary Shards拷贝这期间更改的数据。
    2.5 分布式文档存储
    2.5.1 Shards文档路由
    当你对一个文档建立索引时,它仅存储在一个primary shard上。ES是怎么知道一个文档应该属于哪个shard?当你创建一个新的文档时,ES是怎么知道应该把它存储至shard1还是shard2? 这个过程不能随机无规律的,因为以后我们还要将它取出来。它的路由算法是:
    shard = hash(routing) % numberofprimary_shards
    routing的值可以是文档的id,也可以是用户自己设置的一个值。hash将会根据routing算出一个数值然后%primaryshards的数量。这也是为什么primary_shards在index创建时就不能修改的原因。
    问题:当看到这里时,产生了一个问题:ES为什么要这样设计路由算法,这样就强制使primaryshards不可变,不利于以后index的扩容,除非事前就要对数据规模有所评估来设计可扩展的index。为什么不能使用一致性hash解决primaryshards改变时的情况呢?
    2.5.2 Primary/Replica Shards的交互
    假如我们有Figure8的集群。我们可以向这个集群的任何一台NODE发送请求,每一个NODE都有能力处理请求。每一个NODE都知道每一个文档所在的位置所以可以直接将请求路由过去。下面的例子,我们将所有的请求都发送到NODE1。

    注:最好的实践方式是轮询所有的NODE来发送请求,以达到请求负载均衡。
    写操作
    创建、索引、删除文档都是写操作,这些操作必须在primary shard完全成功后才能拷贝至其对应的replicas上。见Figure9。

    下面是Figure9的步骤:
    1.客户端向Node1发送写操作的请求。
    2.Node1使用文档的_id来决定这个文档属于shard0,然后将请求路由至NODE3,P0所在的位置。
    3.Node3在P0上执行了请求。如果请求成功,则将请求并行的路由至NODE1 NODE2的R0上。当所有的replicas报告成功后,NODE3向请求的node(NODE1)发送成功报告,NODE1再报告至Client。
    当客户端收到执行成功后,操作已经在Primary shard和所有的replica shards上执行成功了。
    当然,有一些请求参数可以修改这个逻辑。见原文。
    读操作
    一个文档可以在primary shard和所有的replica shard上读取。见Figure10

    读操作步骤:
    1.客户端发送Get请求到NODE1。
    2.NODE1使用文档的_id决定文档属于shard 0.shard 0的所有拷贝存在于所有3个节点上。这次,它将请求路由至NODE2。
    3.NODE2将文档返回给NODE1,NODE1将文档返回给客户端。 对于读请求,请求节点(NODE1)将在每次请求到来时都选择一个不同的replica。
    shard来达到负载均衡。使用轮询策略轮询所有的replica shards。
    更新操作
    更新操作,结合了以上的两个操作:读、写。见Figure11

    步骤:
    1.客户端发送更新操作请求至NODE1
    2.NODE1将请求路由至NODE3,Primary shard所在的位置
    3.NODE3从P0读取文档,改变source字段的JSON内容,然后试图重新对修改后的数据在P0做索引。如果此时这个文档已经被其他的进程修改了,那么它将重新执行3步骤,这个过程如果超过了retryon_conflict设置的次数,就放弃。
    4.如果NODE3成功更新了文档,它将并行的将新版本的文档同步到NODE1和NODE2的replica shards重新建立索引。一旦所有的replica
    shards报告成功,NODE3向被请求的节点(NODE1)返回成功,然后NODE1向客户端返回成功。
    2.6 Shard
    本节将解决以下问题:
    为什么搜索是实时的
    为什么文档的CRUD操作是实时的
    ES怎么保障你的更新在宕机的时候不会丢失
    为什么删除文档不会立即释放空间
    2.6.1不变性

    写到磁盘的倒序索引是不变的:自从写到磁盘就再也不变。 这会有很多好处:
    不需要添加锁。如果你从来不用更新索引,那么你就不用担心多个进程在同一时间改变索引。
    一旦索引被内核的文件系统做了Cache,它就会待在那因为它不会改变。只要内核有足够的缓冲空间,绝大多数的读操作会直接从内存而不需要经过磁盘。这大大提升了性能。
    其他的缓存(例如fiter cache)在索引的生命周期内保持有效,它们不需要每次数据修改时重构,因为数据不变。
    写一个单一的大的倒序索引可以让数据压缩,减少了磁盘I/O的消耗以及缓存索引所需的RAM。
    当然,索引的不变性也有缺点。如果你想让新修改过的文档可以被搜索到,你必须重新构建整个索引。这在一个index可以容纳的数据量和一个索引可以更新的频率上都是一个限制。
    2.6.2动态更新索引
    如何在不丢失不变形的好处下让倒序索引可以更改?答案是:使用不只一个的索引。 新添额外的索引来反映新的更改来替代重写所有倒序索引的方案。 Lucene引进了per-segment搜索的概念。一个segment是一个完整的倒序索引的子集,所以现在index在Lucene中的含义就是一个segments的集合,每个segment都包含一些提交点(commit point)。见Figure16。新的文档建立时首先在内存建立索引buffer,见Figure17。然后再被写入到磁盘的segment,见Figure18。

    一个per-segment的工作流程如下:
    1.新的文档在内存中组织,见Figure17。
    2.每隔一段时间,buffer将会被提交: 一个新的segment(一个额外的新的倒序索引)将被写到磁盘 一个新的提交点(commit point)被写入磁盘,将包含新的segment的名称。 磁盘fsync,所有在内核文件系统中的数据等待被写入到磁盘,来保障它们被物理写入。
    3.新的segment被打开,使它包含的文档可以被索引。
    4.内存中的buffer将被清理,准备接收新的文档。
    当一个新的请求来时,会遍历所有的segments。词条分析程序会聚合所有的segments来保障每个文档和词条相关性的准确。通过这种方式,新的文档轻量的可以被添加到对应的索引中。
    删除和更新
    segments是不变的,所以文档不能从旧的segments中删除,也不能在旧的segments中更新来映射一个新的文档版本。取之的是,每一个提交点都会包含一个.del文件,列举了哪一个segmen的哪一个文档已经被删除了。 当一个文档被”删除”了,它仅仅是在.del文件里被标记了一下。被”删除”的文档依旧可以被索引到,但是它将会在最终结果返回时被移除掉。
    文档的更新同理:当文档更新时,旧版本的文档将会被标记为删除,新版本的文档在新的segment中建立索引。也许新旧版本的文档都会本检索到,但是旧版本的文档会在最终结果返回时被移除。
    2.6.3实时索引
    在上述的per-segment搜索的机制下,新的文档会在分钟级内被索引,但是还不够快。 瓶颈在磁盘。将新的segment提交到磁盘需要fsync来保障物理写入。但是fsync是很耗时的。它不能在每次文档更新时就被调用,否则性能会很低。 现在需要一种轻便的方式能使新的文档可以被索引,这就意味着不能使用fsync来保障。 在ES和物理磁盘之间是内核的文件系统缓存。之前的描述中,Figure19,Figure20,在内存中索引的文档会被写入到一个新的segment。但是现在我们将segment首先写入到内核的文件系统缓存,这个过程很轻量,然后再flush到磁盘,这个过程很耗时。但是一旦一个segment文件在内核的缓存中,它可以被打开被读取。

    2.6.4更新持久化
    不使用fsync将数据flush到磁盘,我们不能保障在断电后或者进程死掉后数据不丢失。ES是可靠的,它可以保障数据被持久化到磁盘。 在2.6.2中,一个完全的提交会将segments写入到磁盘,并且写一个提交点,列出所有已知的segments。当ES启动或者重新打开一个index时,它会利用这个提交点来决定哪些segments属于当前的shard。 如果在提交点时,文档被修改会怎么样?不希望丢失这些修改:
    1.当一个文档被索引时,它会被添加到in-memory buffer,并且添加到Translog日志中,见Figure21.

    2.refresh操作会让shard处于Figure22的状态:每秒中,shard都会被refreshed:

    在in-memory buffer中的文档会被写入到一个新的segment,但没有fsync。
    in-memory buffer被清空
    3.这个过程将会持续进行:新的文档将被添加到in-memory buffer和translog日志中,见Figure23

    4.一段时间后,当translog变得非常大时,索引将会被flush,新的translog将会建立,一个完全的提交进行完毕。见Figure24

    在in-memory中的所有文档将被写入到新的segment
    内核文件系统会被fsync到磁盘。
    旧的translog日志被删除
    translog日志提供了一个所有还未被flush到磁盘的操作的持久化记录。当ES启动的时候,它会使用最新的commit point从磁盘恢复所有已有的segments,然后将重现所有在translog里面的操作来添加更新,这些更新发生在最新的一次commit的记录之后还未被fsync。
    translog日志也可以用来提供实时的CRUD。当你试图通过文档ID来读取、更新、删除一个文档时,它会首先检查translog日志看看有没有最新的更新,然后再从响应的segment中获得文档。这意味着它每次都会对最新版本的文档做操作,并且是实时的。
    2.6.5 Segment合并
    通过每隔一秒的自动刷新机制会创建一个新的segment,用不了多久就会有很多的segment。segment会消耗系统的文件句柄,内存,CPU时钟。最重要的是,每一次请求都会依次检查所有的segment。segment越多,检索就会越慢。
    ES通过在后台merge这些segment的方式解决这个问题。小的segment merge到大的,大的merge到更大的。。。
    这个过程也是那些被”删除”的文档真正被清除出文件系统的过程,因为被标记为删除的文档不会被拷贝到大的segment中。
    合并过程如Figure25:

    1.当在建立索引过程中,refresh进程会创建新的segments然后打开他们以供索引。
    2.merge进程会选择一些小的segments然后merge到一个大的segment中。这个过程不会打断检索和创建索引。
    3.Figure26,一旦merge完成,旧的segments将被删除
    新的segment被flush到磁盘
    一个新的提交点被写入,包括新的segment,排除旧的小的segments
    新的segment打开以供索引
    旧的segments被删除
    merge大的segments会消耗大量的I/O和CPU,严重影响索引性能。默认,ES会节制merge过程来给留下足够多的系统资源。

    展开全文
  • 搜索引擎互联网时代的黄金鱼钩

    千次阅读 2006-09-24 18:07:00
    据赛迪顾问发布的《2006年第一季度中国搜索引擎市场分析报告》显示,今年第一季度,中国搜索引擎市场同比增长43.0%,达到2.19亿元人民币。 而艾瑞资询公司研究更显示,2007年中国搜索市场规模将达33亿元。 这是...
            赛迪顾问发布的《2006年第一季度中国搜索引擎市场分析报告》显示,今年第一季度,中国搜索引擎市场同比增长43.0%,达到2.19亿元人民币。
    
     
    

      而艾瑞资询公司研究更显示,2007年中国搜索市场规模将达33亿元。

      这是搜索引擎的黄金时代,更是搜索引擎百家争鸣、群雄争霸的时代。

      国内的搜索市场从去年开始就在持续升温:新浪爱问出世,百度上市,Google进军 中国,“雅巴”结合专攻搜索。而从今年年初开始,搜索领域更是逼近沸点:腾讯的搜搜搜索,微软的Windows Live Search,都在显示巨头们争夺这块大蛋糕的决心;Google中国更名为谷歌的举动,传达出搜索巨头对中国市场的空前重视;而奇虎、商搜、悠悠村等则 要诠释蚂蚁如何与大象共舞……

      综合搜索——我自巍然不动

      综合搜索目前依旧是广大网民最常用的搜索方式。根据《2005-2006中国互联网 产业调查报告》中对国内搜索引擎市场的统计,用户常用的搜索引擎排名前三甲的百度、Google和雅虎搜索,均为综合搜索服务提供商。三巨头共同占据了搜 索市场3/4的份额,各自拥有了相当数量的用户群,成为名副其实的搜索门户。

      庞大的用户群给网站带来了庞大的流量,也为综合搜索服务提供商找到了有效的盈利模式 ——竞价排名、点击付费。网站除了收每次点击费0.3元外,还要收企业之间的竞价费。企业为了排个好名次,就要竞价。每个价位1分钱,前进10位就是1角 钱。而中国各类中小企业以千万计,规模效应之下,市场收益自然非常可观。

      但是综合搜索之所以能做到竞价排名,归根结底是因为网站多年积累的用户群。这无形中也就提高了进入综合搜索的门槛。毕竟,流量、渠道、资金、资源对于实力有限的中小企业不是短期内就能解决的,所以在相当长一段时间内,综合搜索仍将三足鼎立。

      垂直搜索——我专故我在

      Web 2.0大潮之下,用户开始要求互动性、人性化和专业化。于是,细分搜索领域,提供专业服务的垂直搜索应运而生。专业的购物搜索、Blog搜索、商机搜索、求职搜索、旅游搜索、地图搜索、财经搜索等,各种Web 2.0名头下的专业领域垂直搜索方兴未艾。

      以新浪爱问、百度爱问为代表的互动式搜索,最大限度调用网络资源,契合了最流行的 Web 2.0理念;以奇虎、博搜为代表的社区化搜索,体现了互联网社区化、人性化的趋势;以职友集、商搜为代表的专业化搜索,考虑到了网民搜索习性的细分性、特 殊性,更考虑到了职业背景不同所导致的信息关注度与获取度的不同。如商搜就针对不同的产品需求,将上万家企业的资源数据进行整合,按照产品的不同行业进行 分类,针对特定的消费群体推出搜索引擎。

      垂直搜索提供了整合深度和广度的行业信息以及更加细致周到的服务,做到了用户要求的 专、精、深。因而业界普遍认为垂直搜索将是搜索市场下一个增长点。更有分析人士认为,综合搜索的市场将逐步被垂直搜索所蚕食。但笔者认为,垂直搜索的现状 并不如看上去的乐观。首先,竞争因素的存在,搜索门户势必将与开展垂直搜索的中小企业针锋相对,甚至压制其成长;其次,流量、渠道仍然需要一定时间的积 累;再次,盈利模式未见创新,主要还是广告收入,需要独特、更有生命力的模式出现;最后,综合搜索有其存在的必然意义,垂直搜索不可能取而代之,而应是你 中有我、我中有你。

      移动搜索——小鬼要当家

      移动搜索是无线互联网和搜索引擎相结合的产物,它将用户从电脑桌前解放出来,随时随地搜尽天下事。

      从全球来看,各大巨头纷纷开始推广移动搜索。美国的六大移动运营商均开通了基于短信 平台和WAP平台的搜索业务;Yahoo的本地搜索服务,Google与Opera软件公司合作推出的移动搜索服务等,已经成为移动运营商大力推广的热点 业务应用。在英国,IssueBits公司已经开始提供被称为AQA的收费搜索服务。AQA采用“人力”加“技术”的方式回答用户的问题。用户只需发送想 了解的问题至平台,工作人员在很短的时间内就能做出回复。

      国内该领域的先行者当属Cgogo和悠悠村,它们提供包括WAP搜索、新闻搜索、比 价搜索、个人百科、免费图铃搜索下载和手机商城等多种服务。虽然移动搜索目前还存在着诸如无线网络速率较低、手机终端功能单一、内容整合不到位等问题。但 是随着3G的到来,网速、终端、资源这些问题都将迎刃而解。移动搜索最大优势在于打破了空间约束,而且较小的手机屏幕将会过滤掉电脑屏幕上常见的冗余图片 和无关链接。综上所述,移动搜索的迅速崛起也当是顺理成章的事。

      总之,在3G时代,水平与垂直、有线与无线,各种形态、各个领域的搜索引擎都将覆盖渗透。毫不夸张地说:“搜索,将改变未来!”

     
    展开全文
  • PAGE #- 昆明理工大学信息工程与自动化学院学生实验报告 2018 2019 学年 第 1 学期 课程名称信息检索与搜索引擎技术 开课实验室信自 340 2018 年 12 月 10 日 年级专业班 学号 姓名 成绩 实验项目名称 向量空间模型...
  • 昆明理工大学信息工程与自动化学院学生实验报告 20142015 学年第 1 学期 课程名称信息检索与搜索引擎技术 开课实验室 信自楼 445 2014 年 12 月 23 日 年级专业班 计 科 学号 201110405138 姓名 成绩 111 实验项目...
  • 2007互联网创新领袖国际论坛:搜索引擎发展论坛实录 整理:Ackarlix 2007年3月21-22日,2007互联网创新领袖国际论坛在北京召开,本次会议由中国信息产业部指导,中国互联网协会主办,清华科技园和互联网实验室等...
  • 引:互联网发展日新月异,媒体类型层出不穷,对于各类媒体的价值研究逐渐受到业内关注,艾瑞作为新经济...由此,中国搜索引擎行业的流量贡献均值具备极大的提升空间。命题假设:搜索请求量是影响市场营收的重要驱动因素
  • 搜索引擎介绍

    千次阅读 2017-02-06 11:41:51
    自从1994年问世以来,搜索引擎逐渐成为了人们获取Internet信息资源的主要方式,相关搜索引擎网站也逐渐成为Web用户使用Internet时的首选访问站点之一,另外搜索引擎和实时通讯、电子邮件等服务已经成为当今各大门户...
  • 垂直搜索引擎

    千次阅读 2009-07-29 09:31:00
    垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深”...
  • 搜索引擎系统架构

    千次阅读 2015-04-28 11:03:48
    搜索引擎在信息世界的地位是填补人与信息世界的信息断层,而大搜索服务技术对于互联网用户的体验与应用,具有革命性的提升和改善。与传统搜索引擎相比,其基本流程主要包括如下几个方面: 首先,泛网数据...
  • 简单搜索引擎模型

    千次阅读 2010-07-16 22:30:00
    简单搜索引擎模型 A Simple Scratch of Search Engine 作者 史春奇... 高深读者请拐弯到:http://sewm.pku.edu.cn/IR-Guide.txt (北大搜索引擎小组--信息检索指南) 第一章 需求迫切 之前说过, 搜索引擎互联网大爆
  • 这就是搜索引擎:核心技术详解

    千次阅读 2012-01-05 20:33:27
    这就是搜索引擎:核心技术详解 张俊林 著 ISBN978-7-121-14865-1 2012年1月出版 定价:45.00 元 ...宣传语:改变全世界人们...搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系
  • 垂直搜索引擎 nutch

    千次阅读 2008-11-05 22:08:00
    中国十年多来互联网的不断发展,造就出1.3亿的网民,搜索引擎也出现空前的火热。在互联网出现的初期,雅虎、新浪、网易等大型门户网站拥有着绝对多的浏览量,原因在于当初的大部分网站在技术上无法与门户网站相媲
  • 本章主要讲的是搜索引擎的优化,包括提高搜索效率(云存储、缓存机制)、提高搜索质量(网页去重、用户搜索意图识别、网页反作弊)及搜索的发展方向。这三个方面是在网页抓取&搜索排序的基础上发展起来的。
  • 搜索引擎技术

    千次阅读 2007-09-11 14:01:00
    搜索引擎一直专注于提升用户的体验度,其用户体验度则反映在三个方面:准、全、快。用专业术语讲是:查准率、查全率和搜索速度(即搜索耗时)。其中最易达到的是搜索速度,因为对于搜索耗时在1秒以下的系统来说,...
  • 百度搜索引擎工作原理

    万次阅读 2019-01-13 16:52:00
      关于百度以及其它搜索引擎的工作原理,其实大家已经讨论过很多,但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞快的。我们设计这个章节的目的,除了从官方的角度发出...
  • SEO兵书:搜索引擎优化手册

    千次阅读 2012-04-25 16:24:05
    SEO兵书:搜索引擎优化手册 高峰等编著 ISBN978-7-121-15819-3 2012年4月出版 定价:48.00元 16开 348页 宣传语:知识的聚宝盆,奋斗者的踏脚板 内 容 简 介 本书是作者从事搜索引擎优化多年以来的经验总结...
  • 搜索引擎资源

    千次阅读 2008-03-17 19:27:00
    一、搜索引擎技术/动态资源、综合类1、卢亮的搜索引擎研究 http://www.wespoke.com/卢亮属于搜索引擎开发上的专家,以前开发过一个搜索引擎"博索"(http://booso.com/),好像现在已经停止开发了,目前他服务于博客网...
  • 2006-05-25网络蜘蛛及搜索引擎基本原理 TAG:搜索相关 <br />搜索引擎的工作原理大致可以分为:   搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索...
  • 搜索引擎原理

    万次阅读 2005-09-18 21:34:00
    在浩如烟海的Internet上,特别是其... 一、搜索引擎的分类 获得网站网页资料,能够建立数据库并提供查询的系统,我们都可以把它叫做搜索引擎。按照工作原理的不同,可以把它们分为两个基本类别:全文搜索引擎(FullTex
  • 搜索引擎索引之如何更新索引

    千次阅读 2012-03-21 22:13:59
    本文节选自《这就是搜索引擎:核心技术详解》第三章  动态索引通过在内存中维护临时索引,可以实现对动态文档和实时搜索的支持。但是服务器内存总是有限的,随着新加入系统的文档越来越多,临时索引消耗的内存也...
  • 常用搜索引擎指令

    万次阅读 2020-01-20 11:32:18
    搜索引擎优化:就是根据对搜索引擎的算法规则来优化内容,从而使页面能够被搜索引擎信任,并获得较好的排名。 黑帽SEO是用垃圾技术欺骗搜索引擎,一般叫做SEO作弊。黑帽SEO以伪装、欺诈和窃取的方式骗取在SERP中的高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,147
精华内容 16,858
关键字:

互联网空间搜索引擎