Java开源搜索引擎分类列表
- 格式:doc
- 大小:38.50 KB
- 文档页数:3
搜索引擎有哪些分类?分享搜索引擎的6大分类搜索引擎有哪些分类?搜索引擎已经成为我们日常生活中的一部分,无论是进行情人节礼物的研究,还是早上7点之前最近营业的咖啡店,或是寻找镇上最好的面馆。
人们都越来越依赖搜索引擎来查询答案。
网站建设搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎等。
全文索引全文搜索引擎是目前广泛应用的主流搜索引擎,国外代表有Google,国内则有著名的百度。
它们从互联网提取各个网站的信息,建立起数据库,并能检索与用户查询条件相配的记录,按一定的排列顺序返回结果,目录索引虽然有搜索功能,但严格意义上不能称为真正的搜索引擎,只是按目录分类的网站链接列表而已。
用户完全可以按照分类目录找到所需要的信息,不依靠关键字进行查询。
目录索引中最具代表性网站有Yahoo、新浪分类目录搜索。
元搜索引擎元搜索引擎接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。
在搜索结果排列方面,有的之间按来源排列搜索结果,有的则按自定的规则将结果重新排列组合。
垂直搜索引擎垂直搜索引擎为2006年后逐渐兴起的一类搜索引擎。
不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求,在其特定的搜索领域有更好的用户体验。
相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样。
集合式搜索引擎集合式搜索引擎类似元搜索引擎,区别在于它并非同事调用多个搜索引擎进行搜索,而是由用户从提供的若干搜索引擎中选择。
门户搜索引擎门户搜索引擎虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果来自其他搜索引。
成都蜀风科技打造与企业品牌相匹配的网站及微信开发,对每一个网站建设和微信开发项目,都以策略先行,再将创意与技术完美结合。
为企业打造出与企业品牌气质相匹配的网络品牌形象。
我们始终保持行业领先开发水平,不断掌握领先的网络技术。
Java世界中存在许多工具,从Eclipse,NetBeans和IntelliJ IDEA等著名的IDE开始到Java开发人员应该知道的JVM分析和监视工具,如JConsole,VisualVM,Eclipse Memory Analyzer 等。
如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。
在本文中,我将重点介绍适用于各种Java开发人员的通用工具,例如核心Java 开发人员和Web开发人员。
1. JIRAAtlassian的JIRA是当前敏捷开发领域最重要的工具之一。
它用于错误跟踪,问题跟踪和项目管理。
如果你遵循敏捷开发方法,例如Sprint和Scrum,那么你必须了解JIRA。
它允许您创建Spring循环并跟踪软件开发的进度。
JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。
2. GitGit是Java程序员的另一个必备工具,它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从很小到非常大的项目版本管理。
Git易于学习,占用空间小,具有超强的性能。
最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是发现已经在很多其他自由软件项目中也使用了 Git。
3. SeleniumSelenium是Web应用程序最好的软件测试框架之一。
它提供了一种用于创作测试的回放工具,而无需学习测试脚本语言。
Java开发人员可以使用Selenium来测试他们的HTML和JSP文件。
它还为Web浏览器自动化提供了各种工具和库。
Selenium 现在存在2个版本,一个叫selenium-core 一个叫selenium-rc 。
4.JenkinsJenkins是一个用Java编写的开源自动化服务器。
它有助于自动化软件开发,例如编译项目,运行单元测试,集成测试,生成文档以及在本地和远程存储库上载工件。
国外7个源代码库搜索引擎网站转——国外7个源代码/库搜索引擎网站2011-10-25 16:16 146人阅读评论(0) 收藏举报现如今编程似乎成为一种潮流,程序员越来越多,任何一个程序员都必须学习至少一门编程语言,但是学习编程语言总是不那么容易的,前些时候在SitePoint社区进行的如何更好的学习编程语言的讨论中,大家一致认为认真学习别人的代码是一种非常有效的方法,以下七个源代码搜索引擎网站是由网友们提供的、寻找源代码最高效的地方!让我们一起来了解一下吧!1 . GitHubGitHub是非常受欢迎的开源代码库和版本控制服务提供者,前段时间推出了一项新的源代码搜索服务,虽然GitHub才刚刚进入源代码搜索服务领域不久,但是GitHub已经成为了这一领域非常受欢迎的搜索服务提供者,并且已经拥有了数以亿计的代码储存量,正如一篇博客中提到的,GitHub中的确有”很多东西”!2 . KrugleKrugle声称他们的搜索包含超过25亿行代码,这一数量使他们成为互联网上最大的源代码搜索引擎之一,并且还称他们的搜索结果包含了全球三分之一开发者的源代码!同时他们还分别为全球多家大型公司或企业,如Amazone、IBM、、、Yahoo!等提供企业级的代码搜索服务!3 . KodersKoders号称其能够搜索的代码数目超过10亿行,并且深受Ruby 程序员的青睐!在Koders被黑鸭软件公司(Black Duck Software)收购之后,该网站关于Ruby的搜索比过去四年的总和激增了20倍,超过了该站PHP、Perl和Python的搜索数目!并且Ruby已成为该网站继Java、 C/C、和 C#之后搜索次数最多的语言。
4 . CodaesCodaes在这个源代码搜索领域似乎并不起眼,能够搜索到的代码数量也只有2.5亿条,究其原因可能是该网站的搜索服务发展似乎已经停滞好几年了。
Codaes主要关注的是关于Linux方面的C/C++项目代码,但这在今天似乎有些过时了!除非这就是你要找的内容,否则除此之外你有更好的搜索选择。
javalucene用法JavaLucene是一个用于全文检索的开源库,它提供了一个高效且可扩展的搜索引擎。
它基于Apache Lucene项目,并提供了Java编程语言的接口和实现。
使用JavaLucene,我们可以创建索引并搜索包括文本、数字、日期等数据类型的文档。
下面是一些常见的JavaLucene用法:1.创建索引:首先,我们需要创建一个用于存储索引的目录。
然后,我们可以使用IndexWriter类将文档添加到索引中。
每个文档包含一个或多个字段,我们可以指定字段的类型和分析方式。
分析器负责将文本分成单词,并对它们进行规范化和标准化,以便更好地进行搜索。
2.搜索:我们使用IndexSearcher类来执行搜索操作。
可以使用QueryParser类解析查询字符串,并将其转换为查询对象。
查询可以是简单的词语匹配、范围查询、模糊查询等。
搜索结果以文档的形式返回,我们可以根据需要对其进行排序、过滤等操作。
3.更新索引:如果需要对索引进行更新,例如添加新的文档或删除现有的文档,我们可以使用IndexWriter类来执行这些操作。
之后,我们需要使用IndexReader类来重新打开索引以获取最新的结果。
拓展:除了基本的索引和搜索功能,JavaLucene还提供了其他一些强大的功能:1.高级搜索:JavaLucene支持布尔搜索、通配符搜索、模糊搜索、模糊匹配、短语搜索等。
这些功能可以帮助我们更准确地定位所需的结果。
2.高亮显示:JavaLucene可以通过标记匹配结果中的关键词并进行高亮显示来改善用户体验。
这对于搜索结果的展示非常有帮助。
3.分布式搜索:JavaLucene可以与其他工具配合使用,如Apache Solr和Elasticsearch,进行分布式搜索。
这允许我们搭建具有高可用性和可扩展性的搜索引擎。
4.自定义扩展:JavaLucene允许用户通过实现自定义的分析器、查询解析器、评分算法等来扩展其功能。
各类搜索引擎的分类搜索引擎是当今互联网发展成果的经典代表,以其门槛低,使用简单等特点,受到广大用户的青睐,无论是搜索资讯,购物,社交等内容,都可以通过搜索引擎查找到大量与其相关的信息,然而随着搜索引擎的发展,各大搜索引擎又逐渐被细分为不同的类别,本文将从技术、功能以及服务等角度对搜索引擎的分类进行介绍。
一、技术分类搜索引擎的技术分类主要是根据爬虫抓取页面内容的方式不同来划分,主要有以下三类。
1.人工编辑类搜索引擎:人工负责编辑挑选内容,属于非自动化、非算法驱动的搜索引擎,代表是Yahoo!和DMOZ。
2.基于文本检索技术的搜索引擎:主要是借助文本检索技术,通过爬虫抓取页面信息进行文本分析,提取关键词建立索引,再根据用户输入的关键词,匹配索引进行搜索,代表是百度、Google等。
3.基于机器学习的搜索引擎:将机器学习应用于搜索引擎技术,即利用机器学习算法来改善搜索结果质量,是一种新型的搜索引擎技术方向。
二、功能分类搜索引擎的功能分类主要是根据搜索目的不同来划分,主要有以下三类。
1.全文搜索引擎:代表是百度、Google等,主要用于通过检索关键词来搜索互联网中的文本信息,如资讯、文章等。
2.垂直搜索引擎:主要是针对特定领域进行搜索,如搜狗图片搜索、天气预报、股票信息等,也被称为专业搜索引擎。
3.社交搜索引擎:主要是以社交关系为基础的搜索引擎,如知乎、豆瓣等,可以帮助用户查找到与他们搜索内容相关的社交网络信息。
三、服务分类搜索引擎的服务分类主要是根据搜索内容的不同来划分,主要有以下三类。
1.网页搜索引擎:如Google、百度等,主要用于搜索互联网上网页网站内容。
2.本地搜索引擎:主要用于搜索本地信息服务,如百度地图、高德地图等,能搜索到附近的餐厅、酒店、银行等服务机构信息。
3.媒体搜索引擎:主要用于搜索音乐、视频等多媒体信息,如酷狗音乐、优酷视频等。
总而言之,搜索引擎的分类是多方面的,不同类别的搜索引擎针对不同的搜索内容和任务,都有其优缺点,选择适合自己的搜索引擎类型,能够更好地满足自己的个性化需求,提高搜索效率和质量。
Java ES 原理介绍Java ES(Elasticsearch)是一个基于Java语言开发的开源搜索引擎。
它是构建在Apache Lucene之上的,提供了一个分布式的、RESTful风格的搜索和数据分析引擎。
Java ES具备快速、可扩展、实时和容错等特点,被广泛应用于各种类型的应用程序和系统中。
基本概念在深入研究Java ES的原理之前,我们先来了解一些基本概念:索引(Index)索引是Java ES中最基本的数据单位。
它类似于关系型数据库中的表,用于存储和组织数据。
每个索引都包含了一系列的文档(Documents),每个文档是一个JSON格式的数据对象。
类型(Type)类型是索引的一个逻辑分组。
一个索引可以包含多个类型,每个类型代表了一类文档的结构。
在Java ES 7.x及以上版本中,类型已经被逐渐废弃,取而代之的是索引中的Mapping。
映射(Mapping)映射是用来定义文档的结构和字段类型的。
它类似于关系型数据库中表的结构定义。
通过映射,我们可以指定每个字段的数据类型、分词器、索引方式等。
分片和副本(Shard & Replica)Java ES使用分片和副本来实现数据的分布式存储和高可用性。
每个索引被分成多个分片,每个分片可以独立地存储和处理数据。
分片可以在不同的节点之间进行分布式存储和负载均衡。
而副本是对分片的复制,用于提高系统的容错性和读写性能。
倒排索引(Inverted Index)倒排索引是Java ES搜索的核心技术之一。
它是通过统计文档中的词频和位置信息,建立起词到文档的映射关系。
倒排索引能够快速地定位包含特定词汇的文档,从而实现高效的搜索。
体系结构Java ES的体系结构是一个分布式的架构,由多个节点组成。
每个节点可以担任不同的角色,包括主节点(Master Node)、数据节点(Data Node)、协调节点(Coordinator Node)等。
主节点(Master Node)主节点负责整个集群的管理和协调工作。
搜索引擎分类摘要搜索引擎是一种能够帮助用户在互联网上定位和获取所需信息的工具。
随着互联网的迅速发展,搜索引擎也变得越来越多样化。
本文将介绍几种常见的搜索引擎分类,包括通用搜索引擎、垂直搜索引擎和元搜索引擎。
1. 通用搜索引擎通用搜索引擎是最常见的搜索引擎类型,它能够提供广泛的搜索服务,包括网页、图片、视频等多种内容。
通用搜索引擎致力于通过分析网页的内容和链接关系,为用户提供最相关的搜索结果。
目前,全球最大的通用搜索引擎是谷歌(Google),其他著名的通用搜索引擎还有百度、必应(Bing)等。
通用搜索引擎的工作原理通常包括三个主要步骤:抓取、索引和排名。
首先,搜索引擎会使用爬虫程序抓取互联网上的网页内容。
然后,对抓取到的网页进行索引构建,以便更快地检索和匹配用户的搜索关键词。
最后,对索引的网页进行排名,将最相关的搜索结果展示给用户。
虽然通用搜索引擎功能齐全,但是对于特定领域的搜索需求它的效果可能并不理想。
因此,针对特定领域的搜索需求,垂直搜索引擎应运而生。
2. 垂直搜索引擎垂直搜索引擎也称为专业搜索引擎,它专注于特定领域的信息检索。
相较于通用搜索引擎,垂直搜索引擎提供更加精确和专业化的搜索结果。
例如,知乎作为一个垂直搜索引擎,主要面向问题和答案的搜索需求。
而豆瓣则致力于提供电影、图书等娱乐领域的专业化搜索服务。
垂直搜索引擎的优势在于它能够更好地理解和满足特定领域用户的搜索需求。
通过针对特定领域的内容进行分析和聚合,垂直搜索引擎能够提供更加精准和有效的搜索结果。
此外,垂直搜索引擎通常提供更加丰富的专业化功能,如过滤器、排序选项等,以便用户更好地定位所需信息。
然而,垂直搜索引擎的局限性在于其覆盖范围相对较窄。
由于专注于特定领域,垂直搜索引擎往往无法提供其他领域的相关信息,因此对于跨领域搜索需求,用户可能需要同时使用多个垂直搜索引擎或通用搜索引擎。
3. 元搜索引擎元搜索引擎是将多个搜索引擎的结果进行整合和呈现的搜索工具。
Java中常用的第三方库和框架介绍Java是一门广泛应用于软件开发领域的编程语言,它的强大之处在于丰富的第三方库和框架。
这些第三方库和框架能够帮助开发者简化开发过程,提高开发效率,本文将介绍一些常用的Java第三方库和框架。
1. Apache Commons系列Apache Commons是一个开源的Java项目,提供了许多常用的工具类和组件,用于简化Java开发过程。
其中最常用的是Apache Commons Lang,它提供了一系列处理字符串、日期、数组、集合等常见操作的工具类,能够大大简化开发者的工作。
2. Google GuavaGoogle Guava是一个由Google开发的Java库,提供了许多高效且易于使用的工具类和集合类。
它包含了很多实用的功能,比如字符串操作、集合操作、并发编程、IO操作等。
Guava的设计理念是使用简洁的API提供高效的实现,使得开发者能够更加轻松地编写可读性和可维护性高的代码。
3. Spring框架Spring是一个开源的Java框架,用于构建企业级应用程序。
它提供了一个轻量级的容器,用于管理和组织应用程序中的对象,同时还提供了许多其他功能,比如事务管理、安全性、远程访问等。
Spring框架的核心思想是面向接口编程和依赖注入,使得应用程序的开发更加灵活和可扩展。
4. Hibernate框架Hibernate是一个开源的对象关系映射(ORM)框架,用于简化Java应用程序与关系数据库之间的交互。
它将Java对象和数据库表之间进行映射,使得开发者能够使用面向对象的思维来操作数据库。
Hibernate还提供了一系列高级功能,比如缓存、查询优化、事务管理等,使得开发者能够更加高效地进行数据库操作。
5. Apache KafkaApache Kafka是一个分布式流处理平台,用于处理和传输大规模的实时数据流。
它提供了高吞吐量、低延迟和可靠性的消息传递机制,被广泛应用于大数据和实时数据处理领域。
Java开源搜索引擎分类列表
Nutch 是一个开源Java 实现的搜索引擎。
它提供了我们运行自己的搜索引擎所需的全部工具。
包括全文搜索和Web爬虫。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。
文档通过Http利用XML加到一个搜索集合中。
查询该集合也是通过http收到一个XML/JSON响应来实现。
它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
Egothor是一个用Java编写的开源而高效的全文本搜索引擎。
借助Java的跨平台特性,Egothor能应用于任何环境的应用,既可配置为单独的搜索引擎,又能用于你的应用作为全文检索之用。
更多Egothor信息
Nutch
Nutch 是一个开源Java 实现的搜索引擎。
它提供了我们运行自己的搜索引擎所需的全部工具。
包括全文搜索和Web爬虫。
更多Nutch信息
Lucene
Apache Lucene是一个基于Java全文搜索引擎,利用它可以轻易地为Java软件加入全文搜寻功能。
Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。
更多Lucene信息
Oxyus
是一个纯java写的web搜索引擎。
更多Oxyus信息
BDDBot
BDDBot是一个简单的易于理解和使用的搜索引擎。
它目前在一个文本文件(urls.txt)列出的URL中爬行,将结果保存在一个数据库中。
它也支持一个简单的Web服务器,这个服务器接受来自浏览器的查询并返回响应结果。
它可以方便地集成到你的Web站点中。
更多BDDBot信息
Zilverline
Zilverline是一个搜索引擎,它通过web方式搜索本地硬盘或intranet上的内容。
Zilverline 可以从PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文档中抓取它们的内容来建立摘要和索引。
从本地硬盘或intranet中查找到的结果可重新再进行检索。
Zilverline支持多种语言其中包括中文。
更多Zilverline信息
XQEngine
XQEngine用于XML文档的全文本搜索引擎.利用XQuery做为它的前端查询语言.它能够让你查询XML文档集合通过使用关键字的逻辑组合.有点类似于Google与其它搜索引擎搜索HTML文档一样.XQEngine只是一个用Java开发的很紧凑的可嵌入的组件.
更多XQEngine信息
MG4J
MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码(interpolative coding)技术.
更多MG4J信息
JXTA Search
JXTA Search是一个分布式的搜索系统.设计用在点对点的网络与网站上.
更多JXTA Search信息
YaCy
YaCy基于p2p的分布式Web搜索引擎.同时也是一个Http缓存代理服务器.这个项目是构建基于p2p Web索引网络的一个新方法.它可以搜索你自己的或全局的索引,也可以Crawl自己的网页或启动分布式Crawling等.
更多YaCy信息
Red-Piranha
Red-Piranha是一个开源搜索系统,它能够真正"学习"你所要查找的是什么.Red-Piranha可作为你桌面系统(Windows,Linux与Mac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的RSS聚合信息,或搜索你公司的系统(包括SAP,Oracle或其它任何Database/Data source),或用于管理PDF,Word和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索后台等等.
更多Red-Piranha信息
LIUS
LIUS是一个基于Jakarta Lucene项目的索引框架。
LIUS为Lucene添加了对许多文件格式的进行索引功能如:
Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans。
针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时。
更多LIUS信息
Aperture
Aperture这个Java框架能够从各种各样的资料系统(如:文件系统、Web站点、IMAP和Outlook 邮箱)或存在这些系统中的文件(如:文档、图片)爬取和搜索其中的全文本内容与元数据。
它当前支持的文件格式如下:
•Plain text
•HTML, XHTML
•XML
•PDF (Portable Document Format)
•RTF (Rich Text Format)
•Microsoft Office: Word, Excel, Powerpoint, Visio, Publisher
•Microsoft Works
•OpenOffice 1.x: Writer, Calc, Impress, Draw
•StarOffice 6.x - 7.x+: Writer, Calc, Impress, Draw
•OpenDocument (OpenOffice 2.x, StarOffice 8.x)
•Corel WordPerfect, Quattro, Presentations
•Emails (.eml files)
更多Aperture信息
Apache Solr
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。
文档通过Http利用XML加到一个搜索集合中。
查询该集合也是通过http收到一个XML/JSON响应来实现。
它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
更多Apache Solr信息
Paoding
Paoding中文分词是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。
Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。
Paoding中文分词追求分词的高效率和用户良好体验。
更多Paoding信息
Carrot2
Carrot2是一个开源搜索结果分类引擎。
它能够自动把搜索结果组织成一些专题分类。
Carrot2提供的一个架构能够从各种搜索引擎(YahooAPI、GoogleAPI、MSN Search API、eTools Meta Search、Alexa Web Search、PubMed、OpenSearch、Lucene index、SOLR)获取搜索结果。