当前位置:文档之家› Apache+Solr实现更加灵巧的搜索

Apache+Solr实现更加灵巧的搜索

Apache+Solr实现更加灵巧的搜索
Apache+Solr实现更加灵巧的搜索

SOLR

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果;

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

相关搜索:lucene solr

关于作者

Grant Ingersoll是Syracuse大学自然语言处理中心的一名高级软件工程师。Grant的编程兴趣包括信息检索、问题解答、文本分类和提取。他是Lucene Java项目的提交人和发言人。

使用Apache Solr实现更加灵巧的搜索

第1部分:基本特性和Solr模式

使用Solr进行索引、搜索和层面浏览

Solr是一种可供企业使用的、基于Lucene的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。在这篇分两部分的文章中,Lucene Java?的提交人Grant Ingersoll 将介绍Solr并向您展示如何轻松地将其表现优异的全文本搜索功能加入到Web应用程序中。

一旦用户需要某种信息,就可以立即搜索到这些信息,这种要求再也不是可有可无的了。随着Google和类似的复杂搜索引擎的出现,用户希望得到高质量的搜索结果,帮助他们快速、轻易地找到所需的信息。经理对您的在线购物站点同样抱有很高的期望,要求它能够提供一个可伸缩、高度可用且易于维护的搜索解决方案,并且安装这个解决方案不应太昂贵。对于您而言,只是希望事业进步,让老板和客户满意,以及保持头脑清醒。

使用Apache Solr可以满足所有的这些要求,它是一种开放源码的、基于Lucene Java 的搜索服务器,易于加入到Web应用程序中。Solr提供了层面搜索、命中醒目显示并且支持多种输出格式(包括XML/XSLT和JSON格式)。它易于安装和配置,而且附带了一个基于HTTP的管理界面。您可以坚持使用Solr的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。Solr还拥有一个活跃的开发者群体,如有需要,您可以随时向他们寻求帮助。

这篇分为两部分的文章将介绍Solr,展示其特性并举例说明如何将其完全加入到Web 应用程序中。我们将首先提供一些Solr的基本介绍,包括安装和配置的说明。然后引入一个示例应用程序(博客界面),您可以通过该程序让自己熟悉一下Solr的各种特性。您将学习如何使用Solr来索引和搜索内容并探索Solr对层面浏览的支持。第1部分的最后将简要介绍一下Solr的模式并解释如何针对示例应用程序的索引结构配置模式。

安装和配置

要开始使用Solr,需安装以下软件:

Java1.5或更高版本。

Ant1.6.x或更高版本。

Web浏览器,用来查看管理页面。建议使用Firefox;相比之下使用Internet Explorer可能要复杂些。

servlet容器,如Tomcat5.5。本文中的示例假定您的Tomcat在8080端口上运行,这是Tomcat的默认设置。如果运行的是其他servlet容器或在其他的端口上运行,则可能要修改给出的URL才能访问示例应用程序和Solr。我已经假定示例应用程序的各个部分都运行在Tomcat的本地主机上。另外还要注意Solr以打包的方式与Jetty一起提供。

学习

“用Lucene加速Web搜索应用程序的开发”(Deng Peng Zhou,developerWorks,2006年8月):了解关于Lucene搜索库的更多信息,该库用作Solr的基础库。

“Parsing,indexing,and searching XML with Digester and Lucene”(Otis Gospodneti,developerWorks,2003年6月):Lucene初探。

Solr主页:学习教程、浏览Javadocs并随时关注Solr社区。

Solr Wiki:查看Wiki获取关于Solr运作的众多文档。

Solr分析:了解关于Solr的分析器、断词工具和标记筛选器工作原理的更多信息。

Lucene QueryParser Syntax:了解关于Solr和Lucene的查询解析器语法的更多信息。

The Porter Stemming Algorithm:了解关于Solr使用的词干提取算法的更多信息。

Public Websites using Solr:使用Solr功能的Web站点的清单。

Lucene Java主页:探索Solr的起源。

Lucene In Action(Otis Gospodneti and Erik Hatcher;Manning,2004年):对Lucene有兴趣的人的必读之作。

developerWorks Java技术专区:关于Java编程各个方面的数百篇文章。

获得产品和技术

Apache Mirrors:下载Solr1.1或最新版本。

下载Tomcat:参阅Solr Wiki的Solr Tomcat部分,了解有关同时运行Solr和Tomcat 的具体细节。

下载Ant。

下载Firefox。

下载JDK1.5。

获取Luke:一种检查Lucene索引的便捷工具。对索引中的内容有所疑问或查询不能正常运行时请咨询Luke。

下载curl:帮助从命令行提交HTTP请求。

一旦搭建好运行环境,就可以从Apache Mirrors Web站点下载Solr1.1版。接下来,执行以下操作:

1.停止servlet容器。

2.在命令行选择希望在其中执行操作的目录,从中输入mkdir dw-solr。

3.输入cd dw-solr。

4.将Solr下载版本复制到当前目录中并解压缩。即可得到apache-solr-1.1.0-incubating 目录。不用注意incubating标记;Solr早已孵化成熟。

5.将Solr WAR文件复制到servlet容器的webapps目录中。

6.下载示例应用程序,将其复制到当前目录,然后解压缩,即可在当前工作目录中得到一个solr目录。本文将一直把它用作Solr的主目录。

7.可以通过以下三种方式之一设置Solr的主位置:

设置java系统属性solr.solr.home(没错,就是solr.solr.home)。

配置java:comp/env/solr/home的一个JNDI查找指向solr目录。

在包含solr目录的目录中启动servlet容器。(默认的Solr主目录是当前工作目录下的solr。)

8.将示例WAR文件(位于dw-solr/solr/dist/dw.war中)复制到servlet容器的webapps 目录中,方法与复制Solr WAR文件相同。WAR文件的Java的代码位于dw-solr/solr/src/java中,而JSP和其他Web文件位于dw-solr/solr/src/webapp中。

9.要验证所有程序都正常运行,请启动servlet容器并将浏览器指向http://localhost:8080/solr/admin/。如果一切顺利,您应该看到类似图1所示的页面。如果没有出现管理页面,查看容器日志中的错误消息。另外,确保从dw-solr目录启动servlet容器,以便可以正确地设置Solr的主位置。

图 1.一个Solr管理屏幕示例

Solr基础

因为Solr包装并扩展了Lucene,所以它们使用很多相同的术语。更重要的是,Solr创建的索引与Lucene搜索引擎库完全兼容。通过对Solr进行适当的配置,某些情况下可能

需要进行编码,Solr可以阅读和使用构建到其他Lucene应用程序中的索引。此外,很多

Lucene工具(如Luke)也可以使用Solr创建的索引。

关于Lucene

要了解Solr就必须熟悉Lucene。Lucene是一个基于Java的高性能文本搜索引擎库,最初由Doug Cutting编写,后来被捐赠给Apache Software Foundation。很多应用程序

都利用Lucene来增强自身的搜索功能,因为Lucene高速、易用和具有活跃社区的特点。

Solr构建在这些功能之上,使Lucene可供企业使用,并具有最小的编程需求。有关Lucene

的更多信息,请参见参考资料。

在Solr和Lucene中,使用一个或多个Document来构建索引。Document包括一个或多个Field。Field包括名称、内容以及告诉Solr如何处理内容的元数据。例如,Field可

以包含字符串、数字、布尔值或者日期,也可以包含您想添加的任何类型。Field可以使用

大量的选项来描述,这些选项告诉Solr在索引和搜索期间如何处理内容。我将在本文中稍

后详细讨论这些选项。现在,查看一下表1中列出的重要属性的子集:

属性名称说明

indexed Indexed Field可以进行搜索和排序。您还可以在indexed Field上运行Solr分析过程,此过程可修改内容以改进或更改结果。下一节提供了关于Solr的分析过程的更多信息。

stored stored Field内容保存在索引中。这对于检索和醒目显示内容很有用,但对于实际搜索则不是必需的。例如,很多应用程序存储指向内容位置的指针而不是存储实际的文件内容。

表 1.字段属性

Solr的分析过程

您可以在对应用程序内容索引之前运行Solr的分析过程来修改这些内容。在Solr和Lucene中,Analyzer包括一个Tokenizer和一个或多个TokenFilter。Tokenizer负责生成Token,后者在多数情况下对应要索引的词。TokenFilter从Tokenizer接受Token并且可以在索引之前修改或删除Token。例如,Solr的WhitespaceTokenizer根据空白断词,而它的StopFilter从搜索结果中删除公共词。其他类型的分析包括词干提取、同义词扩展和大小写折叠。如果应用程序要求以某种特殊方式进行分析,则Solr所拥有的一个或多个断词工具和筛选器可以满足您的要求。

您还可以在搜索操作期间对查询应用分析。一个总体规则是:应该对查询和要索引的文档运行相同的分析。不熟悉这些概念的用户常犯的一个错误就是:对文档标记进行词干提取,但不对查询标记进行词干提取,通常导致零搜索匹配。Solr的XML配置使它可以轻易地使用简单声明创建Analyzer,本文稍后会对此作出展示。

有关Solr和Lucene的分析工具,以及索引结构和其他功能的更多信息,请参阅参考资料。

示例应用程序

以下各节将使用实际的示例应用程序向您介绍Solr的功能。该示例应用程序是一个基于Web的博客界面,您可以使用它来记录条目、给条目指派元数据,然后索引和搜索条目。在索引和搜索过程的每一步,您都可以选择显示发送到Solr的命令。

要查看示例应用程序,请将浏览器指向http://localhost:8080/dw/index.jsp。如果一切设置正确(如“设置Solr”描述的那样),则您可以看到一个题为“Sample Solr Blog Search”的简单用户界面,在标题的正下方有一些菜单项。当您浏览本文的两个部分时,将会了解到菜单中的所有主题。

索引操作

在Solr中,通过向部署在servlet容器中的Solr Web应用程序发送HTTP请求来启动索引和搜索。Solr接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过HTTP以同样的方式返回响应。默认配置返回Solr的标准XML响应。您也可以配置Solr的备用响应格式。我将在本文的第2部分向您展示如何定制请求和响应处理。

索引就是接受输入(本例中是博客条目、关键字和其他元数据)并将它们传递给Solr,从而在HTTP Post XML消息中进行索引的过程。您可以向Solr索引servlet传递四个不同的索引请求:

add/update:允许您向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新。

Commit:告诉Solr,应该使上次提交以来所做的所有更改都可以搜索到。

Optimize:重构Lucene的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地

运行。优化是一个耗时较多的过程。

Delete:可以通过id或查询来指定。按id删除将删除具有指定id的文档;按查询删除将删除查询返回的所有文档。

一个索引示例

浏览到http://localhost:8080/dw/index.jsp可以查看索引过程的更多细节。首先为表单中的每个字段填入适当的条目并按Submit按钮。示例应用程序接受条目、创建Solr请求并显示请求以便在下一个屏幕上查看。清单1包含了一个add命令的例子,当您按下Submit 按钮时向Solr发送这个命令。

http://localhost/myBlog/solr-rocks.html

Solr Search is Simply Great

solr,lucene,enterprise,search

2007-01-06T05:04:00.000Z

10

Solr is a really great open source search server.It scales,

it's easy to configure and the Solr community is really supportive.

on

清单 1.Solr add命令样例

清单1的中的每个field条目告诉Solr应该将哪些Field添加到所创建文档的Lucene索引中。可以向add命令添加多个。稍后我将解释Solr如何处理这些field。现在,知道包含清单1中指定的七个field的文档将会被索引就足够了。

当您在“Solr XML Command”页面提交命令时,结果将发往Solr进行处理。HTTP POST将命令发往在http://localhost:8080/solr/update运行的Solr Update Servlet。如果一切进展顺利,则会随返回一个XML文档。Solr使用相同的URL自动更新文档(示例应用程序中的URL是Solr识别文档以前是否被添加过所使用的惟一id)。

实践索引

现在再添加几个文档并提交这些文档,以便在下一节中有文档可供搜索。一旦您熟悉add命令的语法后,就可以取消选择Index按钮旁边的“Display XML...”复选框,跳过“Solr XML Command”页面。本文附带的样例文件包含了一个很多这些示例中使用的索引版本。

您可以通过在http://localhost:8080/dw/delete.jsp页面输入文档的URL、提交并查看命令,然后将命令提交到Solr来删除文档。有关索引和删除命令的更多信息,请参阅参考资料中的“Solr Wiki”参考。

搜索命令

添加文档后,就可以搜索这些文档了。Solr接受HTTP GET和HTTP POST查询消息。收到的查询由相应的SolrRequestHandler进行处理。出于本文的讨论目的,我们将使用默认的StandardRequestHandler。在本文的第2部分,我将向您展示如何为其他的SolrRequestHandler配置Solr。

要查看搜索运行,返回到示例应用程序并浏览到http://localhost:8080/dw/searching.jsp。此屏幕应该与索引屏幕非常类似,只是增加了几个搜索相关的选项。与索引类似,可以向各种输入字段中输入值,选择搜索参数并将查询提交给示例应用程序。示例应用程序醒目显示了一些Solr中更常见的查询参数。这些参数如下所示:关于查询语法的一点注意用于StandardRequestHandler的Solr查询语法与Lucene QueryParser支持的查询语法相同,只是前者加入了一些排序支持。示例应用程序对输入的值几乎没有进行验证,而且没有演示如查询增强、短语、范围筛选等功能,所有这些功能在Solr和Lucene中都有效。有关Lucene QueryParser的更多信息,请参阅参考资料。在本文的第2部分,我将介绍管理界面中的一些有助于调试查询语法和结果的工具。

布尔运算符:默认情况下,用于合并搜索条目的布尔运算符是OR。将它设为AND要求匹配的文档中出现所有的条目。

结果数目:指定返回的最大结果数目。

开始:结果集中开始的偏移量。此参数可用于分页。

醒目显示:醒目显示匹配文档字段的条目。参考清单2底部的节点。醒目显示的条目标记为

一旦输入和提交值后,博客应用程序就返回一个可以立即提交给Solr的查询字符串。提交字符串后,如果一切正常并且存在匹配文档,则Solr返回一个XML响应,其中包含了结果、醒目显示的信息和一些有关查询的元数据。清单2给出了一个示例搜索结果:

0

6

10

0

*,score

true

content:"faceted browsing"

1.058217

http://localhost/myBlog/solr-rocks-again.html

Solr is Great

solr,lucene,enterprise,search,greatness

Solr has some really great features,like faceted browsing

and replication

Solr has some really great features,like faceted browsing

and replication

2007-01-07T05:04:00.000Z

solr,lucene,enterprise,search,greatness

8

Solr is Great

http://localhost/myBlog/solr-rocks-again.html

Solr has some really great features,likefaceted

browsingand replication

清单2.搜索结果示例

一条查询消息可以包含大量的参数,表2中对醒目显示的那些参数进行了描述。参阅参考资料中的“Solr Wiki”参考可以查看参数的完整清单。

参数描述示例

q Solr中用来搜索的查询。有关该语法的完整描述,请参阅参考资料中的“Lucene QueryParser Syntax”。可以通过追加一个分号和已索引且未进行断词的字段(下面会进行解释)的名称来包含排序信息。默认的排序是score desc,指按记分降序排序。q=myField:Java AND otherField:developerWorks; date asc

此查询搜索指定的两个字段并根据一个日期字段对结果进行排序。

start将初始偏移量指定到结果集中。可用于对结果进行分页。默认值为0。start=15

返回从第15个结果开始

表2.醒目显示的查询参数

层面浏览

最近,似乎所有流行的购物站点都添加了便利的条件列表,帮助用户根据制造商、价格

和作者缩小搜索结果的范围。这些列表是层面浏览的结果,层面浏览是一种分类方式,用于

对已经返回到有意义的、已证实存在的种类的结果进行分类。层面用于帮助用户缩小搜索结

果的范围。

通过浏览到http://localhost:8080/dw/facets.jsp 可以查看层面的运行。在这个页面上,您

需要关注两种输入形式:

1.一个文本区域,您可以在其中输入查询,根据索引中的all 字段发布此查询。将all 字

段看作一连串已索引的所有其他字段。(稍后将对此作详细介绍。)

2.一个可以用于分层面的字段下拉列表。此处并未列出所有的已索引字段,其原因马上

就会得到解释。

输入一个查询并从下拉列表中选择一个层面字段,然后单击Submit 与生成的查询一起

传递给Solr 。博客应用程序解析结果并返回类似图2中的结果:图 2.层面浏览结果示例

在图2中,您可以在顶部看见所有非零值的层面计数,底部则是匹配所提交查询的两

个搜索结果。单击示例中的层面链接提交原始查询,另外将Facet 关键字作为一个新关键

字。如果原始查询是q=Solr 而层面字段是keywords ,并且单击图2中的replication 链接,

则新查询将会是q=Solr AND keywords:replication 。

运行层面不需要打开它或在Solr 中进行配置,但是可能需要按照新的方式对应用程序

内容进行索引。在已索引的字段中完成分层,层面对未进行断词的非小写词最为有效。(因

的结果。

rows

返回文档的最大数目。默认值为10。rows=25fq 提供一个可选的筛选器查询。查询结果被限制为仅搜索筛选器查询返回

的结果。筛选过的查询由Solr 进行缓存。它们对提高复杂查询的速度非

常有用。

任何可以用q 参数传递的有效查询,排序信息除外。hl 当hl=true 时,在查询响应中醒目显示片段。默认为false 。参看醒目显

示参数上的Solr Wiki 部分可以查看更多选项(见参考资料)。

hl=true fl

作为逗号分隔的列表指定文档结果中应返回的Field 集。默认为“*”,

指所有的字段。“score ”指还应返回记分。

*,score

此我并未包含content字段或Facet Field下拉列表中添加到文档的其他字段。)Facet字段通常不需要存储,因为分层面的总体思想就是显示人类可读的值。

另外还要注意Solr没有在层面中创建类别;必须由应用程序自身在索引期间进行添加,正如在索引应用程序时给文档指派关键字一样。如果存在层面字段,Solr就提供了查明这些层面及其计数的逻辑。

Solr模式

迄今为止,我已向您介绍了Solr的特性,但没有实际解释如何配置这些特性。本文的剩余部分主要介绍配置,首先介绍Solr模式(schema.xml)然后向您展示它如何与Solr的特性相关联。

在编辑器中,最好是支持XML标记醒目显示的编辑器,打开位于

/dw-solr/solr/conf中的schema.xml文件。首先要注意的是大量的注释。如果您以前使用过开放源码的软件,您将会为模式文件中的文档及整个Solr中的文档欣喜不已。因为schema.xml的注释非常全面,所以我主要介绍文件的一些关键属性,具体细节可查阅文档。首先,注意标记中模式(dw-solr)的名称。Solr为每个部署支持一个模式。将来它可能支持多个模式,但是目前只允许使用一个模式。(参阅参考资料中的“Solr Wiki”参考,了解如何简单地配置Tomcat和其他容器,以便为每个容器使用多个部署。)

模式可以组织为三部分:

1.类型

2.字段

3..其他声明

部分是一些常见的可重用定义,定义了Solr(和Lucene)如何处理Field。在示例模式中,有13个字段类型,按名称从string到text。部分顶部声明的字段类型(如sint和boolean)用于存储Solr中的原始类型。在很大程度上,Lucene只处理字符串,因此需要对整型、浮点型、日期型和双精度型进行特殊处理才能用于搜索。使用这些字段类型会警告Solr使用适当的特殊处理索引内容,不需要人为干涉。

类型

generateNumberParts="1"catenateWords="1"

catenateNumbers="1"catenateAll="0"/>

protected="protwords.txt"/>

ignoreCase="true"expand="true"/>

generateNumberParts="1"catenateWords="0"

catenateNumbers="0"catenateAll="0"/>

清单3.文本字段类型声明

首先,注意我在清单3中声明了两个不同的Analyzer。虽然Analyzer对于索引和搜索并非完全相同,但是它们只是在查询分析期间的同义词添加方面有所差别。词干提取、停止词删除以及相似的操作都被应用于标记,然后才进行索引和搜索,导致使用相同类型的标记。接下来,注意我首先声明断词工具,然后声明使用的筛选器。示例应用程序的Solr配置按以下步骤进行设置:

根据空白进行断词,然后删除所有的公共词(StopFilterFactory)

使用破折号处理特殊的大小写、大小写转换等等。(WordDelimiterFilterFactory);将所有条目处理为小写(LowerCaseFilterFactory)

使用Porter Stemming算法进行词干提取(EnglishPorterFilterFactory)

删除所有的副本(RemoveDuplicatesTokenFilterFactory)

示例分析加入了很多用于改进搜索结果的常见方法,但不应被看作分析文本的惟一方式。每个应用程序都可能有一些自己的分析需求,这个示例或者甚至是Solr或Lucene中的任何现有Analyzer都可能没有涉及相应需求。请参阅参考资料中的“More Info On Solr Analysis”,了解关于分析的更多选项以及如何使用其他Analyzer的信息。

类属性

在Solr模式中的很多实例中,类属性简化为类似solr.TextField的样子。这是

org.apache.solr.schema.TextField的简略表达形式。在本文的第2部分中您将看到,类路径中扩展org.apache.solr.schema.FieldType类的任何有效类都可能使用到。

字段

继续介绍模式的部分,查看Solr如何处理索引和搜索期间使用的8个(实际上是7个,外加一个all)字段。清单4中重复了这些字段:

multiValued="true"omitNorms="true"/>

清单 4.博客应用程序的声明字段

理解字段类型后,您可以清晰地看见如何处理每个字段。例如,url字段是一个经过索引、存储和未经分析的string字段。同时,使用清单3中声明的Analyzer来分析text字段。all字段如何处理?all字段是一个text字段,如title或content一样,但是它包含了连接在一起的几个字段的内容,便于使用备用搜索机制(记住层面搜索使用的是all字段)。

对于字段的属性,在表1中您已经了解了indexed和stored的意义。multiValued属性是一个特殊的例子,指Document可以拥有一个相同名称添加了多次的Field。比如在我们的示例中,可以多次添加keywords。omitNorms属性告诉Solr(和Lucene)不要存储规范。省略规范对于节省不影响记分的Field的内存非常有用,比如那些用于计算层面的字段。

在结束部分之前,简要介绍一下字段声明下方的声明。动态字段是一些特殊类型的字段,可以在任何时候将这些字段添加到任何文档中,由字段声明定义它们的属性。动态字段和普通字段之间的关键区别在于前者不需要在schema.xml中提前声明名称。Solr将名称声明中的glob-like模式应用到所有尚未声明的引入的字段名称,并根据其声明定义的语义来处理字段。例如,指一个myRating_i字段被Solr处理为sint,尽管并未将其声明为字段。这种处理比较方便,例如,当需要用户定义待搜索内容的时候。

其他声明

最后,schema.xml文件的最后部分包含了字段和查询相关的各种声明。最重要的声明是url。该声明用于告诉Solr先前声明的url字段是用于确定何时添加或更新文档的惟一标识符。defaultSearchField是查询条目没有前缀任何字段时Solr 在查询中使用的Field。示例所使用的查询与q=title:Solr类似。如果您输入q=Solr,则应用默认搜索字段。最终结果与q=all:Solr相同,因为all是博客应用程序中的默认搜索字段。

机制让您能够创建all字段而无需将文档的所有内容手工添加到单独的字段。复制字段是以多种方式索引相同内容的简便方法。例如,如果您希望提供区分大小写的精确匹配和忽略大小写的匹配,则可以使用一个复制字段自动分析收到的内容。然后严格按照收到的内容进行索引(所有的字母使用小写)。

下一步:用于企业的Solr

目前为止,您已经安装了Solr并学习了如何使用它在示例应用程序中索引和搜索文档。您也了解了Solr中层面浏览如何工作,并学习了如何使用Solr的schema.xml文件声明索引结构。本文附带的示例应用程序演示了这些功能和介绍了如何为Solr格式化命令。

在文章的第2部分,我将会介绍一些特性,它们将Solr从一个简单的搜索界面扩展成一个可供企业使用的搜索解决方案。您将学习Solr的管理界面和高级配置选项,以及性能相关的特性(如缓存、复制和日志记录)。我还将简要讨论扩展Solr以满足企业需求的一些方法。同时,充分利用示例应用程序,帮助自己熟悉Solr的基本功能。

介绍solr

solr是lucene的拓展,是cnet在使用lucene的一个应用而出的开源项目。具体参看wi wiki ki。

跟踪这个开源项目至今快1年半了,具体时间我想不起了。

现在国内用的人还太少,我只碰到两个人问我中文的事情。以前关于它的文字在我以前的blog,那里我很久没更新了。(myopera给和谐了)

国内的介绍文档比较老,solr更新了很多,现在的release版本是1.2,1.3也快出来了。

使用:程序将数据合成xml(cvs)格式发送给solr就可以完成索引。搜索根据solr提供的方式可以获得xml,json,php,python很多格式数据。

所以当前大多数开发语言都可以用来和solr搭配做全文检索系统,相当方便。

很多大型网站如cnet,netflix,digg,aol都使用了它。

如果你感兴趣的话,我建议你到官网上看教程和wiki以及文档,现在的中文文档都太老,翻译和理解也不是很准确。如果想深入或者学习应用中碰到问题,你可以加入solr的mail-list,当然也可以到我发起的一个

lucene的爱好者:

solr的索引更新

一直没有想到为什么要使用solr,虽然solr提供很多利器

前段时间在考虑如果做搜索分组统计的一个个东东,想了很多方案,仍然感觉不好,直到我看到

Apache Con2007上的一篇文档Apache Solr Out Of The Box(OOTB),我觉得看到了希望里面提到的facet正是我想要的

solr的facet field和facet query的确是很强大,facet并未在索引上做手脚,你仍然可以使用以前写的lucene的索引器,虽然仍然是使用hitcollector这个hook,但solr作了很多缓存机制来解决性能上的问题。

很可惜目前的1.2发布版还没有内嵌服务器的功能,如果你不愿意直接使用solr server,你必须得写些代码来解决这个问题,目前网上这方面的资料不多,所以只能看源代码,分析源代码后发现做一个内嵌的solr并非想象中那么复杂,只需对SolrDispatchFilter改造一下即可,你可以认为SolrDispatchFilter是solr搜索的一个壳,那么你写下另外一个并非寄生于servlet容器的壳即可

改造过程还算顺利,2天就基本完成了。

虽然solr facet在cnet上已经使用了,但性能问题仍然让人惴惴不安,只有接受了大流量的检验才好得出结论,让我们拭目以待。

第2部分:用于企业的Solr

在本系列的第1部分,我为您介绍了Apache Solr,一种基于HTTP的开源搜索服务器,它可以很容易地与多种Web应用程序集成。我展示了Solr最基本的功能,包括索引、

搜索和浏览,介绍了Solr模式并解释了它在配置Solr功能方面的作用。在本部分中,我

将通过列举Solr作为大型生产环境中理想的解决方案时所具备的特性来完成对Solr的介

绍。涵盖的主题包括管理、缓存、复制和可扩展性。

请参阅第1部分来获得安装和设置Solr的指导。

配置和管理

本部分介绍了可用于监视和控制Solr功能性的诸多选项,首先来看看Solr的

Administration Start Page,该页可在http://localhost:8080/solr/admin/找到。一旦找到了起始

页,在继续之前,请务必花些时间熟悉一下上面的各种菜单选项。在起始页中,根据这些选

项所提供的信息的不同对它们进行了分组:

1.Solr给出了有关这种活动模式(请参见第1部分)、配置以及当前部署的统计数据

的详细信息。

2.App server给出了容器的当前状态,包括threading信息以及所有Java系统属性的

列表。

3.Make a Query提供了调试查询所需的快捷界面以及到功能更加全面的查询界面的链

接。

4.Assistance提供了到外部资源的有用链接以便理解和解决使用Solv可能遇到的一些

问题。

如下的章节详细介绍了这些菜单选项并重点突出了其中的管理特性。

要使用Solr的配置选项,可以单击初始页上的CONFIG链接,这会显示当前的solrconfig.xml文件。您可以在示例应用程序的dw-solr/solr/conf目录找到该文件。现在,

让我们先来看看与索引和查询处理有关的一些常见的配置选项,而与缓存、复制和扩展

Solr有关的配置选项则留到后面的章节再介绍。

索引配置

mainIndex标记段定义了控制Solr索引处理的低水平的Lucene因素。Lucene基准发布(位于Lucene源代码的contrib/benchmark之下)包含了很多可用来对这些因素的更改

效果进行基准测试的工具。此外,请参阅参考资料一节中的“Solr性能因素”来了解

与各种更改相关的性能权衡。表1概括了可控制Solr索引处理的各种因素:

因素描述

useCompoundFile通过将很多Lucene内部文件整合到单一一个文件来减少使用中的文件的数量。这可有助于减少Solr使用的文件句柄数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则false

的默认值应该就已经足够。

mergeFactor决定低水平的Lucene段被合并的频率。较小的值(最小为2)使用的内存较少但导致的索引时间也更慢。较大的值可使索引时间变快但会牺牲较多的内存。

maxBufferedDocs在合并内存中文档和创建新段之前,定义所需索引的最小文档数。段是用来存储索引信息的Lucene文件。较大的值可使索引时间变快但会牺牲较多的内存。

maxMergeDocs控制可由Solr合并的Document的最大数。较小的值(<10,000)最适合于具有大量更新的应

用程序。

maxFieldLength对于给定的Document,控制可添加到Field的最大条目数,进而截断该文档。如果文档可能会很大,就需要增加这个数值。然而,若将这个值设置得过高会导致内存不足错误。unlockOnStartup unlockOnStartup告知Solr忽略在多线程环境中用来保护索引的锁定机制。在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新。将其设置为

true可以禁用启动锁定,进而允许进行添加和更新。

表1.对性能因素进行索引

部分,有一些与缓存无关的特性,这一点您需要知道。首先,

标记定义了可组合在一起形成一个查询的子句数量的上限。对于大多

数应用程序而言,默认的1024就应该已经足够;然而,如果应用程序大量使用了通配符或

范围查询,增加这个限值将能避免当值超出时,抛出TooManyClausesException。

接下来,若应用程序预期只会检索Document上少数几个Field,那么可以将

属性设置为true。懒散加载的一个常见场景大都发生在应用程序

返回和显示一系列搜索结果的时候,用户常常会单击其中的一个来查看存储在此索引中的原

始文档。初始的显示常常只需要显示很短的一段信息。若考虑到检索大型Document的代

价,除非必需,否则就应该避免加载整个文档。

通配符和范围查询

通配符和范围查询是可自动扩展以包括所有可能匹配查询条件的条目的Lucene查询。

通配符查询允许使用*和?通配符运算符,而范围查询则要求匹配文档必须要在指定的范

围之内。例如,若查找b*,可能导致潜在的数千个不同项都组合进这个查询,进而会导致

TooManyClausesException。

最后,部分负责定义与在Solr中发生的事件相关的几个选项。首先,作为一种介绍的方式,Solr(实际上是Lucene)使用称为Searcher的Java类来处理Query实例。

Searcher将索引内容相关的数据加载到内存中。根据索引、CPU以及可用内存的大小,这

个过程可能需要较长的一段时间。要改进这一设计和显著提高性能,Solr引入了一种“温

暖”策略,即把这些新的Searcher联机以便为现场用户提供查询服务之前,先对它们进行

“热身”。部分中的选项定义newSearcher和firstSearcher事件,您可

以使用这些事件来指定实例化新搜索程序或第一个搜索程序时应该执行哪些查询。如果应用

程序期望请求某些特定的查询,那么在创建新搜索程序或第一个搜索程序时就应该反注释这

些部分并执行适当的查询。

solrconfig.xml文件的剩余部分,除之外,涵盖了与缓存、复制和扩展或定制Solr有关的项目。admin部分让您可以定制管理界面。有关配置admin节的更多信息,

请参看Solr Wiki和solrconfig.xml文件中的注释。

监视、记录和统计数据

在http://localhost:8080/solr/admin的管理页,有几个菜单条目可以让Solr管理员监视Solr过程。表2给出了这些条目:

表2.用于监视、记录和统计数据的Solr 管理选项

调试此分析过程经常地,当创建搜索实现时,您都会输入一个应该匹配特定文档的搜索,但它不会出现

在结果中。在大多数情况下,故障都是由如下两个因素之一引起的:

1.查询分析和文档分析不匹配(虽然不推荐,但对文档的分析可能会与对查询的分析不

同)。

2.Analyzer 正在修改不同于预期的一个或多个条目。

可以使用位于http://localhost:8080/solr/admin/analysis.jsp 的Solr 分析管理功能来深入

调查这两个问题。Analysis 页可接受用于查询和文档的文本片段以及能确定文本该如何分析

并返回正被修改的文本的逐步结果的Field 名称。图1显示了分析句子“The Carolina

Hurricanes are the reigning Stanley Cup champions,at least for a few more weeks ”以及相关的查

询“Stanley Cup champions ”的部分结果,正如为示例应用程序schema.xml 中指定的

content Field 分析的那样:

菜单名

Admin URL 描述Statistics http://localhost:8080/solr/admin/stats.

jsp Statistics 管理页提供了与Solr 性能相关的很多有用的统计数据。这些数据包括:

1.关于何时加载索引以及索引中有多少文档的信息。

2.关于用来服务查询的SolrRequestHandler 的有用信息。

3.涵盖索引过程的数据,包括添加、删除、提交等的数量。

4.缓存实现和hit/miss/eviction 信息。

Info http://localhost:8080/solr/admin/regis try.jsp 有关正在运行的Solr 的版本以及在当前实现中进行查询、更

新和缓存所使用的类的详细信息。此外,还包括文件存于Solr

subversion 存储库的何处的信息以及对该文件功能的一个简要

描述。

Distribution http://localhost:8080/solr/admin/distri butiondump.jsp 显示与索引发布和复制有关的信息。更多信息,请参见“发布

和复制”一节。

Ping http://localhost:8080/solr/admin/ping 向服务器发出ping 请求,包括在solrconfig.xml 文件的

admin 部分定义的请求。

Logging http://localhost:8080/solr/admin/logging.jsp 让您可以动态更改当前应用程序的日志记录等级。更改日志记

录等级对于调试在执行过程中可能出现的问题非常有用。

Java properties properties http://localhost:8080/solr/admin/get-properties.jsp 显示当前系统正在使用的所有Java 系统属性。Solr 支持通过

命令行的系统属性替换。有关实现此特性的更多信息,请参见

solrconfig.xml 文件。

Thread dump http://localhost:8080/solr/admin/threa ddump.jsp

thread dump 选项显示了在JVM 中运行的所有线程的堆栈跟

踪信息。

图1.对分析进行调试

分析屏幕显示了每个条件在被上述表结果Tokenizer或TokenFilter处理后的结果。比如,StopFilterFactory会删除字The、are和the。EnglishPorterFilterFactory会将字champions

提取为champion,将Hurricanes提取为hurrican。紫色的醒目显示表明在特定文档中查询

条件在何处有匹配。

查询测试

admin页的Make a Query部分提供了可输入查询并查看结果的搜索框。这个输入框接受第1部分中讨论到的Lucene查询解析器语法,而Full Interface链接则提供了对更多

搜索特性的控制,比如返回的结果的数量、在结果集中应该包括哪些字段以及如何格式化输

出。此外,该界面还可用来解释文档的计分以更好地理解哪些条件得到了匹配以及这些条件

是如何得分的。要实现这一目的,可以查看Debug:enable选项并滚动到搜索结果的底端来

查看相关解释。

智能缓存

智能缓存是让Solr得以成为引人瞩目的搜索服务器的一个关键性能特征。例如,Solr 在提供缓存服务之前可通过使用旧缓存中的信息来自热缓存,以便在服务于现有用户的同时

改进性能。Solr提供了四种不同的缓存类型,所有四种类型都可在solrconfig.xml的

部分中配置。表3根据在solrconfig.xml文件中所用的标记名列出了这些缓存类

型:

缓存标记名描述能否自热?

可以filterCache通过存储一个匹配给定查询的文档id的无序集,过滤器让Solr能够有效提

高查询的性能。缓存这些过滤器意味着对Solr的重复调用可以导致结果集的

快速查找。更常见的场景是缓存一个过滤器,然后再发起后续的精炼查询,这

表3.Solr 缓存类型

每个缓存声明都接受最多四个属性:

1.class 是缓存实现的Java 名。

2.size 是最大的条目数。

3.initialSize 是缓存的初始大小。

4.autoWarmCount 是取自旧缓存以预热新缓存的条目数。如果条目很多,就意味着缓存

的hit 会更多,只不过需要花更长的预热时间。

而对于所有缓存模式而言,在设置缓存参数时,都有必要在内存、CPU 和磁盘访问之

间进行均衡。统计信息管理页对于分析缓存的hit-to-miss 比例以及微调缓存大小的统计数

据都非常有用。而且,并非所有应用程序都会从缓存受益。实际上,一些应用程序反而会由

于需要将某个永远也用不到的条目存储在缓存中这一额外步骤而受到影响。

发布和复制

对于收到大量查询的应用程序,单一一个Solr 服务器恐怕不足以满足性能上的需求。

因而,Solr 提供了跨多个服务器复制Lucene 索引的机制,这些服务器必须是负载均衡的查

询服务器的一部分。复制过程由solrconfig.xml 文件启动的事件侦听程序和几个shell 脚本

(位于示例应用程序的dw-solr/solr/bin )处理。

在复制架构中,一个Solr 服务器充当主服务器,负责向一个或多个处理查询请求的从

服务器提供索引的副本(称为snapshot )。索引命令发送到主服务器,查询则发送到从服务

器。主服务器可以手动创建快照,也可以通过配置olrconfig.xml 的部分

(请参见清单1)来触发接收到commit 和/或optimize 事件时的快照创建。无论是手动创

建还是事件驱动的创建,都会在主服务器上调用snapshooter 脚本,这会在名为

snapshot.yyyymmddHHMMSS (其中的yyyymmddHHMMSS 代表实际创建快照的时间)的

服务器上创建一个目录。之后,从服务器使用rsync 来只复制Lucene 索引中的那些已被更

改的文件。

snapshooter

solr/bin

true

arg1arg2

种查询能使用过滤器来限制要搜索的文档数。

queryResultCach

e

为查询、排序条件和所请求文档的数量缓存文档id 的有序集合。可以documentCache 缓存Lucene Document ,使用内部Lucene 文档i d (以便不与Solr 惟一id 相

混淆)。由于Lucene 的内部Document id 可以因索引操作而更改,这种缓存

不能自热。

不可以Named caches 命名缓存是用户定义的缓存,可被Solr 定制插件所使用。可以,如果实现

org.apache.solr.se

arch.CacheRegene

rator 的话。

网站SEO搜索引擎优化排名

SEO是英文Search Engine Optimization 的缩写,翻译成中文,意思就是“搜索引擎优化”。SEO的主要工作是通过了解各类搜索引擎在抓取页面时的不同特征,针对各类 搜索引擎制定不同的优化方针,使得所要优化网站的排名上升,进而达到提升网站流 量乃至最终达到提升网站销售能力和宣传网站的目的。 在国外,SEO开展较早,那些专门从事SEO的技术人员被Google称之为“Seach Engine Optimizers”。在国外,最大的搜索引擎供应商是Google,而在国内,最大的搜索引擎供应商是搜罗。因此,Google成为国外SEO的主要研究对象;而在国内,则主要是搜罗。 当今,随着搜索引擎的飞速发展以及排名算法机制的不断更新,SEO技术及其队伍也在近些年来飞速发展和壮大,人们对SEO技术的认可和重视也与日俱增。 在讨论搜索引擎优化之前,首先简单地谈一下搜索引擎的工作原理。研究搜索引擎优 化实际上就是对搜索引擎工作过程的逆向推理,因此,学习搜索引擎优化首先要了解 搜索引擎的工作原理。搜索引擎主要包括全文搜索引擎(搜罗、Google),目录搜索 引擎,元搜索引擎三大类。以下主要介绍全文搜索引擎的工作原理。 搜索引擎的主要工作包括:页面收录、页面分析、页面排序及关键字查询。 (1).页面收录: 页面收录就是指搜索引擎在互联网中进行数据采集,然后将采集到的数据存放到自己的数据库中,这是搜索引擎最基础的工作。搜索引擎是根据页面的URL 地址找到网页,然后利用蜘蛛程序抓取网页。 (2).页面分析: 页面分析指搜索引擎对收录的页面将进行一系列的分析、处理,

主要包括:过滤标签提取网页正文信息,对正文信息进行切词处理,建立关键字与页面间的索引等,为用户的查询做好准备。 用户向搜索引擎提交关键字查询信息后,通常会返回多个结果页面,决定页面排序的 主要因素包括页面相关性和链接权重,做优化工作的主要任务也就是想办法提高页面 的相关性和链接权重,页面相关项性主要由关键字匹配度、关键字密度、关键字分布 及权重标签等决定,链接权重包括内部链接权重和外部链接权重,其中外部链接权重 影响较大。最后就是用户进行关键字查询。 谈完了搜索引擎的工作原理,接下来就要是网站推广中最重要的环节了,即SEO 搜索引擎优化。一般来说,SEO搜索引擎优化存在着两种截然不同的方式:一种是以 正常的方式或者说搜索引擎允许的方式进行优化;而另一种则是以一种作弊的形式来 进行优化。对于这两种方法,不能只是单纯地赞扬或者反对,而应该客观地予以观察。第一种方式追求的是稳以及安全,而第二种方式则风险与利益相挂钩。风险小了,回 报也就少了;而当风险很大时,利益有时候也很大。 在这里,主要讲的是第一种方法,因为第一种方法实际操作起来是比较困难的,而且对于网站的风险性很大,不建议新手去做。新手只需要一步一个脚印,慢慢坚持下去,就会有所成就的。 SEO搜索引擎优化一般来说可以分为两类:网站内部SEO搜索 引擎优化和网站外部的SEO搜索引擎优化。 (一) 网站内部SEO搜索引擎优化 网站内部SEO搜索引擎优化的主要内容有:网站结构优化、网 页代码优化、关键字优化、站内链接优化等。 (1)网站结构优化。

中外搜索引擎研究的现状与发展

中外搜索引擎研究的现状与发展 夏旭李健康 (第一军医大学图书馆广州510515) 摘要: 以WWW网络搜索引擎的发展历程为基础,综述了WWW网络搜索引擎的定义、检索机制、检索规则、词表应用、分类研究、比较研究等方面取得的新进展,探讨搜索引擎发展走向与思路。同时就目前中外搜索引擎普遍存在的问题进行分析,希能对国内中文搜索引擎的开发和准确、快速、全面检索WWW网络乃至因特网信息资源有所启示。 关键词:搜索引擎研究进展综述信息资源管理 由于因特网上信息资源内容广泛、时效性强、访问快速、网络交互搜寻、动态更新,而且还提供快速访问网上信息资源的各种搜索引擎(Search Engines),用于快速搜索WWW网络乃至因特上的有用信息,使得通过WWW网络获取网络信息资源成为国内外研究的一大热点。基于网络的搜索引擎的研制与开发应用成为当前网络信息资源开发应用研究领域的热点。英文搜索引擎“GOOGLE”和中文搜索引擎“百度搜索”的推出,拉开了搜索引擎核心技术争夺战的序幕。可以预言,在今后一段相当长的时间里,搜索引擎还将有长足的发展和进步,检索功能将更趋向于集成化和更具亲和力、更显人性化。 1 搜索引擎的定义、检索机制、检索规则和词表应用 1.1 定义 搜索引擎,Search engines,又称搜索机,Web搜索器,是伴随WWW网络出现的检索网上信息资源的新工具。实质上是一种网页网址检索系统,有的提供分类和关键词检索途径,有的仅提供关键词检索途径。它根据检索规则和从其他信息服务器上得到数据并对数据进行加工处理,自动建立索引,并通过检索接口为用户提供信息查询服务,能够自动对WWW资源建立索引或进行主题分类,并通过查询语法为用户返回匹配资源的系统。搜索引擎主要是由Crawler、Spider、Worm、Robot等计算机软件程序自动在因特网上漫游,不断搜集各类新网址及网页,形成数以千万甚至上亿条记录的数据库。它是通过采集标引众多网络站点来提供全局性网络资源控制与检索机制、将全球WWW网络中所有信息资源作一完整的集合、整理和分类、方便用户查找所需信息的网络检索软件。具有检索面广、信息量大、信息更新速度快,特定主题的检索专指性强等特点。 1.1.1 常规搜索引擎和元搜索引擎 自带索引数据库的搜索引擎通常被称为常规搜索引擎或独立搜索引擎,相应地,集多种常规搜索引擎于一体的搜索引擎则称为(多)元搜索引擎。元搜索引擎是国外搜索引擎开发者新设计的一种集成型搜索引擎,与独立搜索引擎的区别在于:它是通过一个统一的用户界面帮助用户在多个独立搜索引擎中选择和利用合适的搜索引擎,甚至是同时利用多个搜索引擎来实现检索操作。元搜索引擎没有自己独立的数据库,却更多地提供统一界面,形成一个由多个搜索引擎构成的具有独立功能的虚拟逻辑体,通过元搜索引擎的功能实现对这个虚拟逻辑体中各搜索引擎数据库的查询等一切操作。由于元搜索引擎预先配置好多个搜索引擎,每条检索指令都自动通过预先配置的搜索引擎执行,免去了用户逐一记忆和单独使用每个搜索引擎的麻烦。主要的元搜索引擎有ALL-IN-ONE、CUSI、Fun City Web Search、HyperNews、Linksearch、Savvysearch、Metacrawler、Best Search、W3Search Engines、WebSearch、Profusion、Mamma、Avenuesearch、Dogpile、Kwikseek、Findspot、Bytesearch、Webferret、Bluesquirrel Webseeker等。Metacrawler (http://www. https://www.doczj.com/doc/dc14733197.html,)能同时调用6个搜索引擎;Savvysearch (http://www. https://www.doczj.com/doc/dc14733197.html,)可有选择地调用21个独立的搜索引擎,检索Web、Usenet 新闻组、软件、参考工具、技术报告等信息,每次最多并行检索5个搜索引擎的数据库。Profusion (http://www. https://www.doczj.com/doc/dc14733197.html,)最多同时调用9个独立的搜索引擎,调用方式有全部调用、系统自动选择最好的3个、系统自动选择最快的3个、用户从中选取任意个搜索引擎。最新出现的桌面型离线式搜索引擎如Webcompass、WebSeeker、WebFerret、Echosearch、Copernic98等也是元搜索引擎。 1.1.2 集中式搜索引擎和分布式搜索引擎

国内外搜索引擎的特征及其比较

国内搜索引擎的特征及其比较 摘要随着信息的剧增,Internet的进一步普及,在浩如烟海的信息高速公路上,根据自己的需求快速准确地需找所需要的信息越来越依赖于借助多种多样的Internet信息检索工具,而搜索引擎是我们平时使用最多的一种。下面就国内的四个著名搜索引擎来探究它们的特征和区别。 关键字引擎检索查询 一百度(http://WWW.baidu.corn) 百度由百度网络技术有限公司于1999年底在美国硅谷创建,是目前全球最大的中文搜索引擎。数据库中收录约3亿个中文网页,平均2周更新一次,对部分网页每天更新。搜索方式以关键词检索为主,同时可结合分类目录限定检索范围,分基本检索和高级检索两种,支持布尔算符和字段限制符。特设百度快照功能,供用户迅速查看每条检索结果的内容。检索时不区分英文字母的大小写,检索结果依相关度排列。 二中文Goog1.(hap://WWW.google.corn) Gcog1.由两位斯坦福大学的博士I丑rry Page和SergeyBrin在1998年创立,是目前世界上最大的搜索引擎。数据库中收录约1O亿多个中文网页,采用高级的网页级别技术,用户界而出色,有新闻组、图像、新闻等搜索,以搜索相关性高闻名。检索方式为关键词检索,分为基本检索和高级检索,基本检索以布尔检索为主,高级检索中包括: (1)排除某些站点; (2)限定检索结果于某一特定网站; (3)限定语言类型; (4)相关网页检索,检索结果依检索式相关性排列。 三新浪(http://WWW.sina.com) 新浪搜索引擎是面向华人的网上资源查询系统。提供网站、网页、新闻、软件、游戏等查询服务。共有16大类目录,1万多个细目和数十万个网站。搜索方式包括关键词查询和分类目录检索两种。除基本检索以外,还具备“重新查询”“在结果中再查”和“在结果中去除”三种高级检索,支持布尔逻辑检索,用

基于JAVA技术搜索引擎的设计与实现

龙源期刊网 https://www.doczj.com/doc/dc14733197.html, 基于JAVA技术搜索引擎的设计与实现 作者:刘智勇 来源:《数字技术与应用》2017年第05期 摘要:随着科技的进步与发展,互联网成为21世纪的宠儿,网络信息也复杂多样。这些繁杂的网络信息在给我们带来便利的同时也产生了极大的问题,比如如何在这海量的信息里面找到自己所需要的内容,成为当前互联网技术的热门领域。互联网信息复杂多样,因此想要迅速、快捷的找到所需要的信息内容,就需要搜索引擎来帮忙实现。本文就对搜索引擎的工作原理,组成和数据结构等方面进行分析,对搜索引擎未来的发展方向进行探索。众所周知,智能化是未来的一个大的趋势,想要实现搜索引擎的智能化,就需要使搜索引擎具备自我学习的能力,适应用户的查询需求。 关键词:搜索引擎;智能化;信息检索 中图分类号:TP391.3 文献标识码:A 文章编号:1007-9416(2017)05-0205-01 1 搜索引擎概述 随着信息时代的来临,互联网的迅速普及应用,已经成为我们正常生活中不可或缺的一部分。因为互联网信息具备共享等多种特性,使得网络信息成倍的增加。谷歌公司所收录的网页信息都已经过亿,而且每天还在不断的攀升,想要在这么多数据里面,选取对自己有用的信息,就需要借助搜索引擎来进行实现。 搜索引擎是从1994年诞生,随着互联网的信息日益增多,搜索引擎也在不断的发展,从1994年到现在历经三个阶段。搜索引擎的第一个阶段就是1994年到1996年,这个阶段的搜索引擎以集中式检索为主。当时网络信息并没有很多,一般都是少于百万的网页,也没有索引,检索速度也非常慢。也是采用网络、数据库等关键技术来实现。第二个阶段是1996年到1998年,这个期间,搜索引擎采用分布式检索方案,使用多个微型计算机来协同工作,其目的是为了提高数据规模和响应速度。一般可以响应千万次的用户检索请求。第三代搜索引擎,就当前所使用的搜索引擎,也是搜索引擎极为繁荣的时期。它拥有完整的索引数据库,除了一般的搜索,还有主题搜索和地域搜索。但是这些搜索结果反馈给用户的数据量较大,检索结果的相关度又成为研究的核心。 我们通常所用的搜索引擎也分为多种,按照信息的搜集方法和服务提供方式的不同进行区分,常用的有三类,第一,目录式搜索引擎。它是以人工方式进行信息的搜集,由编辑员进行审查并制作成信息摘要,将其进行分类置入架构中去。这类搜索方式的搜索结果准确,信息质量高,但是需要大量的人工成本,信息更新不及时,维护量大。第二,机器人搜索引擎。就是我们常说的网络爬虫,是由一个网络蜘蛛的机器人程序以某种策略自动地在互联网中搜集和发现信息,这种信息查询方式是由索引器完成的。索引器为搜集到的信息建立一个完整的索引,

搜索引擎论文题目(热门标题100个)

搜索引擎论文题目(热门标题100个) 搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。下面是100个关于搜索引擎论文题目,供大家参考。 搜索引擎论文题目一: 1、搜索引擎商标侵权法律问题研究 2、搜索引擎中的伦理失范问题与治理研究 3、中文学术搜索引擎比较研究 4、利用搜索引擎数据模拟疾病空间分布 5、大学生网络信息搜索行为实证研究——基于搜索引擎的利用 6、跨设备搜索引擎结果页面注意力分布研究——基于眼动视觉数据的实证分析 7、基于Lucene的新闻垂直搜索引擎设计与实现 8、基于更新信息的网页机器理解及其在站内搜索引擎中应用 9、利用学术搜索引擎及学术论坛提高大学生研究性学习效率 10、基于大数据的有声图书馆搜索引擎设计 11、基于Redis的分布式搜索引擎研究 12、大数据搜索引擎下的知识产出机制研究

13、“老狐狸”施密特:带领谷歌从搜索引擎变身7000亿美元市值科技巨头 14、基于搜索引擎数据的流感监测预警 15、竞价排名中搜索引擎服务提供商的审查义务范围研究 16、论搜索引擎公司的社会责任 17、电商营销精确搜索引擎的优化设计与实现 18、电子商务专业“学赛创”一体化教学模式的设计与实践——以《搜索引擎优化》课程为例 19、基于Google API的全文搜索引擎系统 20、基于知网与搜索引擎的词汇语义相似度计算 21、国内可视化搜索引擎研究进展:领域应用与系统实现 22、开源搜索引擎Elasticsearch和Solr对比和分析 23、如何免费从搜索引擎获取SEO流量 24、网站SEO中被搜索引擎惩罚的几种表现 25、网络搜索引擎广告的创新传播策略 搜索引擎论文题目二: 26、搜索引擎社会责任缺失的现状、原因及对策研究 27、知识发现系统与通用学术搜索引擎文献资源比较研究——以超星发现和百度学术为例 28、搜索引擎中缩略图使用的合法性分析 29、多边平台的产品市场界定——兼论搜索引擎的产品市场

搜索引擎在电子商务中的应用

搜索引擎在电子商务中的运用

搜索引擎在电子商务中的运用 摘要:20世纪互联网的出现和飞速发展,商务信息爆炸式的增长以及网络环境的日益复杂,搜索引擎作为信息检索的重要工具在网络经济中的作用变得越来越重要,搜索引擎与电子商务的结合是未来电子商务的发展趋势,因此本文以搜索引擎现状、面向电子商务的智能搜索引擎技术及在网络营销中的应用以及搜索引擎在今后的发展趋势做出简单的介绍. 关键词:电子商务;信息检索;搜索引擎;应用研究;发展趋势 一、对电子商务和搜索引擎的理解 从总体上来看,电子商务是指给整个贸易活动实现电子化。应用计算机与网络技术与现代信息化通信技术,按照一定标准,利用电子化工具来实现包括电子交易在内的商业交换和行政作业的商贸活动的全过程。 搜索引擎(SearchEngine):通过运行一个软件,该软件在网络上通过各种链接,自动获得大量站点页面的信息,并按照一定规则进行归类整理,从而形成数据库,以备查询。这样的站点(获得信息——整理建立数据库——提供查询)我们就称之为“搜索引擎”。 1.2 搜索引擎在我国的发展现状 (8) 1.2.1我国搜索引擎的背景 (8) 1.2.2 搜索引擎的现状 (9) 1.3本文的研究内容 (10) 第一章搜索引擎的原理…………………………………………………………… 11 2.1搜索引擎的原理概述…………………………………………………………… 11 2.2搜索引擎的实现原理…………………………………………………………… 12

2.2.1从互联网上抓取网页……………………………………………………… 12 2.2.2建立索引数据库…………………………………………………………… 12 2.2.3在索引数据库中搜索……………………………………………………… 13 2.2.4对搜索结果进行处理排序………………………………………………… 13 1.2搜索引擎的现状 1.2.1 我国搜索引擎的背景 百度上市后,我国的搜索市场一下子热了起来。越来越多的企业围绕着搜索市场作起了文章。而且,在搜索大战的同时,一些企业也抛出了一些惊人言论。近日,记者从专业做人脉交际的联络家(https://www.doczj.com/doc/dc14733197.html,)技术总监冉征处了解到,联络家正在加紧研发人脉相关领域的专业垂直,联络家之所以涉足专业垂直搜索引擎领域,是看到未来垂直专业搜索引擎市场的巨大商机,他认为未来搜索市场将进一步细分,象Google、百度等主张大而全的全球式搜索引擎将会面临垂直专业搜索引擎更大的竞争与挑战,他们的市场分额将会被逐渐瓜分,专业的行业性垂直搜索将受到网民的青睐。 那么缘何能得出如此结论呢?CNNIC第十四次互联网调查显示,搜索以71.9%的绝对优势成为用户从互联网上获得信息的主要方式。几乎在全球所有的调查中,搜索引擎都是互联网上使用程度仅次于电子邮箱的服务,搜索引擎服务能成为最受欢迎的服务是因为他解决了用户在浩瀚的互联网海量快速定位信息屏颈问题,在海量的网页里找信息按照传统方式需要用户一个网站一个网站一级目录一级目录下找,要耗费大量的精力和时间,几乎是不可能实现的任务。 1.2.2 搜索引擎的现状 随着互联网的信息量呈爆炸趋势增长,几年前全球式搜索引擎收录的网页量

百度搜索引擎的特点

百度对原创文章的重视程度比谷歌高,对于一个完全相同内容的网站,在谷歌已经收录了上千个网页,而百度则还site不到信息。百度对收录质量也在不断提高,早几年以前都说百度收录的数量很浮夸,而现在,很多大网站的收录数量被砍一半,甚至远远低于谷歌的收录数量。这一举动也说明百度在改变收录标准和更新标准。 令百度优化者经常头疼的事就是自己的网站经常被百度“K掉”,轻则K掉过首页,重则K掉掉其它更多的页面,甚至一毛不留。这是百度对于百度优化作弊者的一种惩罚机制。而且会有一种连带责任。如果某个网站被K掉,而你的网站有指向它的友情链接,那么你的网站也会被“K掉”。而且不会事先通知你。出现被“K掉”是很痛苦的事,如果你不采取补救措施,那么就可能一直“K掉”之下去。最后你的网站会被踢出百度之门。 百度搜索引擎的特点 1智能相关度算法。采用了基于内容和基于超链分析相结合的方法进行相关度评价,能够客观分析网页所包含的信息,从而最大限度保证了检索结果相关性。 2基于字词结合的信息处理方式。巧妙解决了中文信息的理解问题,极大地提高了搜索的准确性和查全率。 3运用多线程技术、高效的搜索算法、稳定的UNIX平台、和本地化的服务器,保证了最快的响应速度。百度搜索引擎在中国境内提供搜索服务,可大大缩短检索的响应时间。 4支持主流的中文编码标准。包括GBK掉、GB2312、BIG5,并且能够在不同的编码之间转换。 5相关检索词智能推荐技术。在用户第一次检索后,会提示相关的检索词,帮助用户查找更相关的结果,统计表明可以促进检索量提升8-22%. 6智能性、可扩展的搜索技术保证最快最多的收集互联网信息。拥有目前世界上最大的中文信息库,为用户提供最准确、最广泛、最具时效性的信息提供了坚实基础。 7百度搜索支持二次检索。可在上次检索结果中继续检索,逐步缩小查找范围,直至达到最小、最准确的结果集。利于用户更加方便地在海量信息中找到自己真正感兴趣的内容。 8检索结果输出支持内容类聚、网站类聚、内容类聚+网站类聚等多种方式。支持用户选择时间范围,提高用户检索效率。 9检索结果能标示丰富的网页属性(如标题、网址、时间、大小、编码、摘要等),并突出用户的查询串,便于用户判断是否阅读原文。 10可以提供一周、二周、四周等多种服务方式。可以在7天之内完成网页的更新,是目前更新时间最快、数据量最大的中文搜索引擎。 文章出自合肥肛肠医院:https://www.doczj.com/doc/dc14733197.html,,转载请注明出处。

一个小型搜索引擎的设计与实现

一个小型搜索引擎的设计与实现 摘要 随着互联网和宽带上网的普及,搜索引擎在中国异军突起,并日益渗透到人们的日常生活中,在互联网普及之前,人们查阅资料首先想到的是拥有大量书籍的资料的图书馆。但是今天很多人都会选择一种更方便、快捷、全面、准确的查阅方式--互联网。而帮助我们在整个互联网上快速地查找到目标信息的就是越来越被重视的搜索引擎。 本文通过分析国内外搜索引擎的发展现状,提出了一种功能强大,操作简单,通用性强,可以满足用户对信息搜索需要,利用ASP技术实现的一个B/S体系结构的搜索引擎系统方案。文中着重论述了该系统的功能与实现、数据流程与存储、后台管理等。并对关键的有关技术作了较详细的介绍。论文在撰写过程中,力求将理论与系统应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。 关键词:搜索引擎;ASP;B/S;关键字

The Design and Implementation of a Small Search Engine Abstract With the popularization of the Internet and surfing the Net broadband search engine likes a dark horse in China, going to people?s daily life day by day. Before this, when people consult materials the first thought is the library that has a large number of books. Now, more and more people will choose Internet to search for information. It?s more convenient, and accurate for searching information. The search engine that helps us in the whole Internet to quickly identify target information is played more and more attention to. Through analyzing the current development of search engine in domestic and international, this paper gives a plan that achieves the formidable function, simply operating, stronger versatility and satisfies the users to the information search need, and realizes a systematic scheme of search engine of B/S system structure with the technology of ASP. This paper mainly describes the function and realization of this system, data procedure and storing, back-stage management, etc. And also introduces to the key relevant technology in detail. During this period, I?ve made a lot effort to union the theory and practice, and coordinates with system to explain from practical application and operation skill while explaining various kinds of theories, hope to more fully reflect the knowledge and application in this system of technology and realize. Key words:Search Engine; ASP; B/S; Keyword

SEO 搜索引擎竞价排名

搜索引擎竞价排名的应用状况分析及建议 【摘要】:竞价排名是搜索引擎关键词广告的一种形式,按照付费最高者排名靠前的原则,对购买了同一关键词的网站进行排名的一种方式。目前关键词竞价排名成为一些企业利用搜索引擎营销的重要方式,竞价排名带来的实际效果(ROI)尚没有权威的调查结果,总体来说仍处于起步阶段。为了了解竞价排名的相关问题,我们对网络营销服务领域的企业应用进行了初步的调查,并对竞价排名营销方式提出一些基本建议。 -------------------------------------------------------------------------------- 竞价排名是搜索引擎关键词广告的一种形式,按照付费最高者排名靠前的原则,对购买了同一关键词的网站进行排名的一种方式。竞价排名一般采取按点击收费的方式。关键词广告和竞价排名方式较传统的搜索引擎营销方式的主要特点有:可以方便的对用户的点击情况进行统计分析、可以随时更换关键词以增强营销效果。目前关键词竞价排名成为一些企业利用搜索引擎营销的重要方式,竞价排名带来的实际效果(ROI)尚没有权威的调查结果,总体来说仍处于起步阶段。 国内主要搜索引擎在收费登录之后又相继推出了竞价排名服务,竞价排名方式已成为一些企业的网络营销

手段,目前的应用状况如何,又具有什么特点呢?为了了解竞价排名的相关问题,我们对网络营销服务领域的企业应用进行了初步的调查,并对竞价排名营销方式提出一些基本建议。因为网络营销企业自身的网络营销更具有先天优势,在一定程度上也引导着网络营销应用的潮流,因此我们利用百度搜索引擎,对网络营销服务领域常用的关键词进行了检索,结果如下: 网络营销服务领域常用关键词竞价排名应用状况 关键词 竞价网站数量 网站建设 50 网站推广 41 电子商务 26 搜索引擎 10 网络营销 17 网站策划 7 网络广告 7 网上商店 7 网上营销 2 email营销 2 资料来源:根据百度搜索引擎检索结果整理。检索时间:2003年5月30日 说明:根据搜索结果中网站简介最后有“[推广]”标志进行统计,这些网站是否完全属于付费竞价排名,无法得到完全证实,统计结果仅供参考。

主题搜索引擎的设计与实现

第四代搜索引擎—— 主题搜索引擎的设计与实现 Design and Implementation of Focused Search Engine, 4th Generation Search Engine 北京大学计算机科学技术系计算机软件专业 九七级学士毕业论文 指导教师:李晓明王建勇 作者:罗昶 学号:09708136 2001年6月

指导老师对论文工作的评语 “面向主题的搜索引擎”,是我们“天网”搜索引擎下一步发展的重要方向之一。罗昶同学的毕业论文,是这一新方向的良好开端。 论文从系统实现的角度,较全面的阐述了实现一个高质量主题搜索引擎系统的各个方面,着重分析了导向词、特征提取、权威和中心网页、超链分析以及网页评分等多种搜集策略的运用,并提出了“主题度”的概念,用以衡量主题搜索引擎的质量,意在指明一个搜索引擎在一个主题下的主题度越高,则它越贴近这个主题,用户就越容易找到跟这个主题相关的资料。特别地,将上述认识用于实践中,高质量地完成了一个面向影视主题的搜索引擎系统,搜集了十多万影视信息,在影视信息方面提供着比“天网”通用搜索引擎更有效的服务;论文内容丰富,所涉及的工作量很大,且有较强的系统性,是一篇很有参考价值的论文,为“天网”的发展做出了贡献。 老师签名:__________

论文摘要 互联网上的信息每天都以指数量级的速度爆炸性增长,面对如此浩瀚的资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索引擎出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。 但是,随着信息多元化的增长,千篇一律的给所有用户提供同一个入口显然已经不能满足特定用户更深入的查询需求。同时,这样的通用搜索引擎在目前的硬件条件下,要及时更新以得到互联网上较全面的信息是不太可能的。针对这种情况,我们需要一个分类细致精确、对硬件要求低,数据全面深入、更新及时的面向主题的搜索引擎。由于主题搜索运用了人工分类以及特征提取等智能化策略,因此它比前三代的搜索引擎将更加有效和准确,我们将这类完善的主题搜索引擎称为第四代搜索引擎。 本文阐述了第四代搜索引擎天网主题搜索引擎的设计与实现,并着重分析了导向词、特征提取、权威和中心网页、超链分析以及网页评分等多种搜集策略的运用。论文最后定义了独创的“主题度”来衡量主题搜索引擎的性能,一个搜索引擎在一个主题下的主题度越高,证明这个搜索引擎越贴近这个主题,用户就越容易找到跟这个主题相关的资料。有了“主题度”,就可以很容易的比较使用多种搜集策略以后的天网主题搜索引擎与原天网通用搜索引擎的差别,说明了前者在特定的主题下要比后者更准确贴切。 关键词:互联网、万维网、搜索引擎、数据发掘、主题搜索、主题度

六大搜索引擎的比较

一、界面、广告以及速度搜索引擎在我们日常操作中的使用频率非常高,大家使用它的目的都非常明确,就是用它来搜寻需要的内容,而不会为搜索引擎的页面做过多的停留,因此搜索引擎的界面设计和速度就对我们的使用产生不小的影响,下面来看看这六款搜索引擎在界面和速度上的表现。谷歌、百度和微软的Live Search,这三大搜索引擎的界面大家都已经相当熟悉,它们有着共同的特点,就是简洁至极:网站LOGO、搜索框和按钮以及个别功能服务链接,除此以外,页面上就没有其他多余和花哨的东西了,给人的感觉非常清爽,界面一目了然,特别是Live Search在不失简洁的同时还通过一些小脚本和背景图片使得页面整体更加美观。三者使用起来都很方便,并且首页界面上没有任何第三方的广告。搜索结果页面,三者同样是采用简洁的风格,页面左侧排列着搜索结果,百度搜索结果页面右侧有不少广告,谷歌视关键词的不同也可能出现右侧广告。 Live Search的界面十分简洁且美观 百度搜索结果页面右侧的广告与上面三者相比,雅虎全能搜在界面上显得更为活泼、色彩更加多样,并且在首页内容上也更丰富。首页上除了常规的搜索所需组成部分外,雅虎全能搜还加入了天气预报、邮箱登录的显示区域。虽然这些占据了一点点页面,但是它们功能实用且不影响正常使用。雅虎全能搜的搜索主页 搜狗搜索的界面可谓结合了谷歌和Live Search:在布局上

与谷歌类似,而在细节上与Live Search有着异曲同工之妙;而搜索新军——网易有道的界面与谷歌、百度站在同一阵线,风格、版式都十分一致。在搜索结果页面中,搜狗搜索页面左侧有少量广告。总的来说,六款搜索引擎的界面设计都比较合理、美观、大方。雅虎全能搜的界面稍有不同,加入了天气预报和邮箱模块,而其他五款都尽量精简,其中谷歌、百度和有道趋于一致,采用最简的风格,而Live Search和搜狗在首页的一些细节上多加以了一些修饰。此外,值得一提的是一些搜索引擎对于Logo文化的重视,在传统的节日或者一些特殊的纪念日时都会将首页的Logo徽标换成与该日子相关的设计。其中在这方面要数谷歌和百度做得最为出色:无论是三八节、五一节这样的国际节日,或者情人节、万圣节这样的西方舶来物,还是春节、清明、端午等传统的中国农历节日,谷歌和百度都会精心设计相应的节日Logo;此外,谷歌在一些特殊的纪念日,如达芬奇诞辰、地球日之类的纪念日也会推出专门的徽标;而百度近期开始定期在首页推出一个搜索封面人物,以此反映对互联网时代风云人物的价值取向,十分有特色。雅虎和搜狗在节日Logo设计方面也有所表现,在节日时也可经常看到其专门的徽标;网易有道正式版新近推出不久,我们还无法对其在特殊Logo的设计上是否会有所表现作出评价。搜索引擎的特色Logo其实并不仅仅是一个单纯的设计,它还有更多的作用:它承载了一种信息,传达了搜索引擎提供商对于创新、

搜索引擎的现状和发展趋势

期末课程论文 论文标题:搜索引擎的现状与发展趋势 课程名称:信息检索技术 课程编号:1220500 学生姓名:潘飞达 学生学号:1100310120 所在学院:计算机科学与工程学院 学习专业:计算机科学与技术 课程教师:王冲 2013年7月1 日

【摘要】 搜索引擎包括图片搜索引擎、全文索引、目录索引等,其发展历史可分为五个阶段,目前企业搜索引擎和网站运营搜索引擎运用范围较广。在搜索引擎的未来发展中,呈现出个性化,多元化,智能化,移动化,社区化等多个趋势。 【关键词】 发展过程、发展趋势、检索技巧、个性化、智能化 1 搜索引擎简介 搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。百度和谷歌等是搜索引擎的代表。 其工作作原理分为抓取网页,处理网页和提供检索服务。 抓取每个独立的搜索引擎都有自己的网页抓取程序,它顺着网页中的超链接,连续地抓取网页。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引文件。 搜索引擎是根据用户的查询请求,按照一定算法从索引数据中查找信息返回给用户。为了保证用户查找信息的精度和新鲜度,搜索引擎需要建立并维护一个庞大的索引数据库。一般的搜索引擎由网络机器人程序、索引与搜索程序、索引数据库等部分组成。 系统结构图 2搜索引擎的工作原理 第一步:爬行 搜索引擎是通过一种特定规律的软件跟踪网页的链接,从一个链接爬到另外一个链接,像蜘蛛在蜘蛛WWW 文档 网络机器人程序 建立Lucence 索引 从数据库中搜索信息 Tomcat 服务器 Lucence 索引数据库 WWW 浏览器 WWW 浏览器 JSP 网络机器人程序

搜索引擎的分类、特点及工作过程

第三章因特网的应用 3.2因特网上的信息检索 第1课时搜索引擎的分类、特点及其工作过程 一、教学目标 知识目标 1、温习搜索引擎检索常用信息的方法,能熟练使用至少1个搜索引擎获取所需信息; 2、掌握全文搜索引擎、目录式搜索引擎、元搜索引擎的特点,能够分析各自的优缺点和 各自的工作过程。 技能目标 1、掌握搜索引擎的使用方法,能灵活选择合适的搜索引擎获取所需信息。 情感目标 1、理解搜索引擎的的社会意义和存在价值; 2、激发学生创新意识和探索网络信息检索技术的兴趣。 二、教学重点: 1、掌握全文搜索引擎、目录式搜索引擎、元搜索引擎的特点,能够分析各自的优缺点, 理解各自的工作过程; 2、熟练使用全文搜索引擎、目录式搜索引擎、元搜索引擎检索所需信息。 三、教学难点: 1、能够分析全文搜索引擎、目录式搜索引擎、元搜索引擎各自的优缺点,理解各自的工作过程。 四、教学方法: 任务驱动分组教学 五、教学过程 任务1:解答同学们在使用搜索引擎过程中主要存在的问题。 任务2:用三类搜索引擎搜索”高一信息技术练习题”,观察得到的结果,分析各类搜索引擎的特点和优缺点。 任务3:分别利用百度图片、专业图片网检索姚明照片和按钮图片,并比较两种检索方法的特点。 任务1:同学们在使用搜索引擎过程中主要存在的问题。4分钟 针对学生提出的问题,老师作答,有选择地作演示。 新课 看新闻、体育等信息我们常常会上哪些网站呢?(门户网站或综合网站) 但是要找比较陌生、不同见解或大量相关信息怎么办?(搜索引擎) 这节课我们一起来深入探讨搜索引擎的分类、特点及其工作过程 搜索引擎分类:全文搜索引擎、目录式搜索引擎、元搜索引擎 3分钟 任务2:用三类搜索引擎搜索“高一信息技术练习题”,观察得到的结果,分析各类搜索引擎的特点和优缺点。(文本检索)27分钟 学生练习并分组讨论。 引导学生注意观察搜索到的网页数、用时,搜索结果的标题、摘要和准确度,目录式搜索引

基于JAVA技术的搜索引擎的研究与实现

基于JAVA 技术的搜索引擎的研究与实现 摘要 网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。本文首先详细介绍了基于英特网的搜索引擎的系统结构,然后从网络机器人、索引引擎、We b 服务器三个方面进行详细的说明。为了更加深刻的理解这种技术,本人还亲自实现了一个自己的搜索引擎——新闻搜索引擎。 新闻搜索引擎是从指定的Web 页面中按照超连接进行解析、搜索,并把搜索到的每条新闻进行索引后加入数据库。然后通过Web 服务器接受客户端请求后从索引数据库中搜索出所匹配的新闻。 本人在介绍搜索引擎的章节中除了详细的阐述技术核心外还结合了新闻搜索引擎的实现代码来说明,图文并茂、易于理解。 Abstract The resources in the internet are abundant, but it is a difficult job to search some useful information. So a search engine is the best method to solve this problem. This article fist introduces the system structur e of search engine based on the internet in detail, then gives a minute explanation form Spider search, e ngine and web server. In order to understand the technology more deeply, I have programmed a news se arch engine by myself. The news search engine is explained and searched according to hyperlink from a appointed web page, th en indexs every searched information and adds it to the index database. Then after receiving the custome

搜索引擎基本工作原理

搜索引擎基本工作原理 目录 1工作原理 2搜索引擎 3目录索引 4百度谷歌 5优化核心 6SEO优化 ?网站url ? title信息 ? meta信息 ?图片alt ? flash信息 ? frame框架 1工作原理 搜索引擎的基本工作原理包括如下三个过程:首先在互联网中发现、搜集网页信息;同时对信息进行提取和组织建立索引库;再由检索器根据用户输入的查询关键字,在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并将查询结果返回给用户。 1、抓取网页。每个独立的搜索引擎都有自己的网页抓取程序爬虫(spider)。爬虫Spider顺着网页中的超链接,从这个网站爬到另一个网站,通过超链接分析连续访问抓取更多网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。 2、处理网页。搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引库和索引。其他还包括去除重

复网页、分词(中文)、判断网页类型、分析超链接、计算网页的重要度/丰富度等。 3、提供检索服务。用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。 搜索引擎基本工作原理 2搜索引擎 在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库 的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP 地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。 另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。 当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,

搜索引擎的设计与实现

web搜索引擎的设计与实现

摘要 随着网络的迅猛发展。网络成为信息的极其重要的来源地,越来越多的人从网络上获取自己所需要的信息,这就使得像Google[40],百度[39]这样的通用搜索引擎变成了人们寻找信息必不可少的工具。 本文在深入研究了通用搜索引擎基本原理、架构设计和核心技术的基础上,结合小型搜索引擎的需求,参照了天网,lucene等搜索引擎的原理,构建了一个运行稳定,性能良好而且可扩充的小型搜索引擎系统,本文不仅仅完成了对整个系统的设计,并且完成了所有的编码工作。 本文论述了搜索引擎的开发背景以及搜索引擎的历史和发展趋势,分析了小型搜索引擎的需求,对系统开发中的一些问题,都给出了解决方案,并对方案进行详细设计,编码实现。论文的主要工作及创新如下: 1.在深刻理解网络爬虫的工作原理的基础上,使用数据库的来实现爬虫部分。 2.在深刻理解了中文切词原理的基础之上,对lucene的切词算法上做出了改进的基础上设计了自己的算法,对改进后的算法实现,并进行了准确率和效率的测试,证明在效率上确实提高。 3.在理解了排序索引部分的原理之后,设计了实现索引排序部分结构,完成了详细流程图和编码实现,对完成的代码进行测试。 4.在完成搜索部分设计后,觉得效率上还不能够达到系统的要求,于是为了提高系统的搜索效率,采用了缓存搜索页面和对搜索频率较高词语结果缓存的两级缓存原则来提高系统搜索效率。 关键词:搜索引擎,网络爬虫,中文切词,排序索引

ABSTRACT With the rapidly developing of the network. Network became a vital information source, more and more people are obtaining the information that they need from the network,this making web search engine has become essential tool to people when they want to find some information from internet. In this paper, with in-depth study of the basic principles of general search engines, the design and core technology architecture, combining with the needs of small search engine and in the light of the "tianwang", lucene search engine, I build a stable, good performance and can be expanded small-scale search engine system, this article not only completed the design of the entire system, but also basically completed all the coding work. This article describle not only the background of search engines, but also the history of search engine developing and developing trends,and analyse the needs of small search engines and giving solutionsthe to the problems which was found in the development of the system ,and making a detailed program design, coding to achieve. The main thesis of the article and innovation are as follows: 1.with the deep understanding of the working principle of the network spider.I acheived network spider with using database system. 2.with the deep understanding of Chinese segmentation and segmentation algorithm of lucene system,I made my own segmentation algorithm,and give a lot of tests to my segmentation algorithm to provide that my segmentation algorithm is better. 3.with the deep understanding of sorted and index algorithm,I designed my own sorted and index algorithm with the data-struct I designed and coding it ,it was provided available after lots of tests. 4.after design of search part,I foud the efficiency of the part is not very poor,so I designed two-stage cache device to impove the efficiency of the system. Key words: search engine,net spider, Chinese segmentation,sorted and index

相关主题
文本预览
相关文档 最新文档