被邀请回答这个问题,但是似乎问错人了,问的是开源的搜索引擎,但是很抱歉,我对此领域并不熟悉。
创新互联公司2013年开创至今,先为青山等服务建站,青山等地企业,进行企业商务咨询服务。为青山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
我所知道的搜索引擎方案仅有:
1. Nutch ()
2. Datapark search
以下列表不是一个完整的搜索引擎方案,一般都不包括爬虫,确切的说是IR或者全文检索引擎更为恰当:
1. Zettair
2. Indri
3. Terrier
4. Galago
5. Zebra
6. Lucene 及其变种
Lucene
Solr
Elasticsearch
7. Sphinx
8. Xiapian
实现方式有多种,建议方式一:
1. 在页面制作好输入框input,并且定义动作为打开一个帧iframe;
2. 在帧里,执行动作为百度的链接。意思也就是百度执行的结果在我自己的iframe里打开
java的开源的免费全文检索工具Lucene
Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。
Lucene的发展历程:早先发布在作者自己的,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:
已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:
Jive:WEB论坛系统;
Eyebrows:邮件列表HTML归档/浏览/查询系统,本文的主要参考文档“TheLucene search engine: Powerful, flexible, and free”作者就是EyeBrows系统的主要开发者之一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统。
Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene
Eclipse:基于Java的开放开发平台,帮助部分的全文索引使用了Lucene
对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。
一、什么叫搜索引擎?
在Internet上有上百亿可用的公共Web页面,即使是最狂热的冲浪者也不会访问到所有的页面,而只能看到其中的一小部分,更不会在这浩瀚的Web海洋中发现你那即使精彩却渺小的一隅。当然你可以为你的存在做广告,可以用大大的字把你的URL刻在你的身体上,然后裸体穿过白宫草坪,但你得保证媒体正好在那里,并注视到了这一切。与其这样做,不如好好去理解搜索引擎是如何工作的?又怎样选择和使用"keywords"(关键词)等等。
本文的目的就是让众多的页面设计者在了解搜索引擎的基础上,寻求如何使自己的页面在搜索引擎索返回的列表中获得好的排列层次的方法。
"搜索引擎"这个术语一般统指真正意义上的搜索引擎(也就是全文检索搜索引擎)和目录(即目录式分类搜索引擎),其实他们是不一样的,其区别主要在于返回的搜索结果列表是如何编排的。
1、目录
目录(比如Yahoo!)返回的列表是由人工来编排的。
这类引擎提供了一份人工按类别编排的网站目录,各类下边排列着属于这一类别的网站的站名和网址链接,再记录一些摘要信息,对该网站进行概述性介绍(摘要可能是你提交过去的,也可以是引擎站点的编辑为你的站点所做的评价)。人们搜索时就按相应类别的目录查询下去。
这类引擎往往还伴有网站查询功能,也称之为网站检索,即提供一个文字输入框和一个按钮。我们可以在文字框中输入要查找的字、词或短语,再点击按钮,便会在目录中查找相关的站名、网址和内容提要,将查到的内容列表送过来。目前国内Sohoo、常青藤等都是这种搜索方式。
2、搜索引擎
搜索引擎(如HotBot)是自动创建列表的。
搜索引擎看起来与目录的网站查询非常相似,也提供一个文字输入框和按钮,使用方法也相同,而且有些也提供分类目录,但两者却有本质上的区别。
目录的资料库中,搜集保存的是各网站的站名、网址和内容提要;搜索引擎的资料库中,搜集保存的则是各网站的每一个网页的全部内容,范围要大得多。
搜索引擎是以全文检索的方式工作的。全文检索查到的结果不是站名、网址和内容提要,而是与你输入的关键词相关的一个个网页的地址和一小段文字。在这段文字中,可能没有你输入的那个关键词,它只是某一网页的第一段话,甚至是一段无法看懂的标记,但在这个网页中,一定有你所输入的那个关键词,或者相关的词汇。打个比方说,网站查询可以查到网上有哪些报纸,如《文汇报》、《大公报》,而全文检索则可以查到网上这些报纸的每一篇文章中的词汇。
3、两者相结合的搜索引擎
某些搜索引擎同时也提供目录。包含在搜索引擎中的目录通常质量比较高,也能从那里找到许多好站点。因为即使你把你的站点提交过去,也并不能保证一定被加到目录中去,他们把注意力放在那些已经在别的目录中存在的站点上,并有选择地寻找有吸引力的加到自己的目录中。
搜索引擎和目录各有各自不可替代的功用。目录比较简单,要想获得一个好的排列层次,除了你努力创建一个好内容的高品质站点外别无他法。搜索引擎复杂得多,它们随时都在自动地索引众多WEB站点的最新网页,所以常常会发现目录所不能得到的信息。如果你改动了你的页面,搜索引擎还随时会发现这个变化,并重新排列你在列表中的位置。而目录就做不到。下面专门讨论搜索引擎的工作原理以及如何提高在搜索引擎列表中的排列位置。
搜索引擎(search engines)是对互联网上的信息资源进行搜集整理,然后供你查询的系统,它包括信息搜集、信息整理和用户查询三部分。
搜索引擎是一个为你提供信息“检索”服务的网站,它使用某些程序把因特网上的所有信息归类以帮助人们在茫茫网海中搜寻到所需要的信息。
早期的搜索引擎是把因特网中的资源服务器的地址收集起来,由其提供的资源的类型不同而分成不同的目录,再一层层地进行分类。人们要找自己想要的信息可按他们的分类一层层进入,就能最后到达目的地,找到自己想要的信息。这其实是最原始的方式,只适用于因特网信息并不多的时候。随着因特网信息按几何式增长,出现了真正意义上的搜索引擎,这些搜索引擎知道网站上每一页的开始,随后搜索因特网上的所有超级链接,把代表超级链接的所有词汇放入一个数据库。这就是现在搜索引擎的原型。
随着yahoo!的出现,搜索引擎的发展也进入了黄金时代,相比以前其性能更加优越。现在的搜索引擎已经不只是单纯的搜索网页的信息了,它们已经变得更加综合化,完美化了。以搜索引擎权威yahoo!为例,从1995年3月由美籍华裔杨致远等人创办yahoo!开始,到现在,他们从一个单一的搜索引擎发展到现在有电子商务、新闻信息服务、个人免费电子信箱服务等多种网络服务,充分说明了搜索引擎的发展从单一到综合的过程。
然而由于搜索引擎的工作方式和因特网的快速发展,使其搜索的结果让人越来越不满意。例如,搜索“电脑”这个词汇,就可能有数百万页的结果。这是由于搜索引擎通过对网站的相关性来优化搜索结果,这种相关性又是由关键字在网站的位置、网站的名称、 标签等公式来决定的。这就是使搜索引擎搜索结果多而杂的原因。而搜索引擎中的数据库因为因特网的发展变化也必然包含了死链接。
怎样才能使搜索引擎精确地为人们提供相关的信息应该是它以后发展的方向,而不是只求综合服务。
搜索引擎指自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。
搜索引擎的工作原理
搜索引擎的工作原理大致可以分为:
1、搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他中的超链接,就象日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。
2、整理信息:搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
3、接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。
.
看的有些模糊,不过既然是java搜索引擎,用lucene去做比较简单,还是说你想自己写搜索引擎?