利用搜索引擎搭建企业搜索平台_第1页
利用搜索引擎搭建企业搜索平台_第2页
利用搜索引擎搭建企业搜索平台_第3页
利用搜索引擎搭建企业搜索平台_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用搜索引擎搭建企业搜索平台利用搜索引擎搭建企业搜索平台

中图分类号:TP393文献标识码:A文章编号:1003-9082〔2022〕04-0004-02

一、前言

1.目的和意义

搜索引擎是当前互联网应用中的主要工具,通过使用搜索引擎,使得我们检索信息的能力获得了极大的提高,我们较常使用的百度和Google就是搜索引擎应用最成功榜样。随着企业数据中心的建立,越来越多的数据不断的会聚,企业将面对海量数据,如何把搜索引擎技术引入到企业中应用,并利用其为企业搭建自己的搜索平台,为企业从海量数据中进行快速、准确、有效的搜索提供支持。

2.研究的内容

本文主要研究内容是Lucene搜索引擎实现原理,并利用基于Lucene的搜索引擎效劳器Solr搭建企业自己的搜索平台。

二、搜索引擎原理

1.搜索引擎介绍

搜索引擎是一种搜索工具,目的在于帮忙用户找到想要查询的信息和数据。搜索引擎没有具体的分类,大致分为全文搜索引擎、分类目录搜索引擎、元搜索引擎等。企业中要使用搜索引擎技术,可以选择成熟的开源工程,目前开源的全文搜索引擎有Sphinx、Nutch、Solr等等。

2.搜索引擎工作原理

不同的搜索引擎实现会有一些差别,但是根本的实现原理是类似的。搜索引擎工作原理总体分两个过程,索引〔Indexing〕和搜索〔Search〕。

索引:是所有搜索引擎的核心概念,为了进行快速查找,把数据处理成一种高效、可交叉引用的格式。索引过程是将各种数据提取成搜索引擎能辨认的信息交给索引器,索引器会分析数据并在索引库中创立该信息的索引。

搜索:就是在索引中查找关键字的过程,目的是找到这些关键字在哪些地方出现过,搜索的质量通常由查确率〔precise〕和查全率〔recall〕来衡量,查全率衡量查找到相关内容的能力,查确率用来衡量过滤非相关内容能力。搜索过程是在得到用户的查询请求后,在索引库中搜索创立的索引,然后返回结果。

三、搜索引擎库Lucene

本文选择Lucene搜索引擎来实现搜索应用,它是一个基于JAVA的开源、高度可扩展的搜索引擎库,也是目前最为流行的基于JAVA开源全文检索工具包。它提供了一套简单的核心API,可方便的嵌入到各种应用程序中实现增加索引和搜索功能。

1.索引的建立

只要数据能转换成文本,Lucene可以对任何格式的数据做索引和搜索。对于常见的格式化文档,使用Tika工具包解析成文本,然后将文本填到Document中的Field里〔类似于数据库的字段概念〕,经过分词器解析,用IndexWriter写入到索引文件中。

中文分词

在搜索引擎中,词〔Token〕是真正用来索引文档的信息。对英文而言,词与词之间有空格分隔,可以很容易的辨别出词,而中文的词不存在分隔符,同时也不足明显的形态标记,难以辨认。因此,中文的搜索引擎首要问题就是如何将中文分割成合理的词语序列,这个过程就叫中文分词。好的分词器能快速而准确的切分中文语句,使用户在搜索过程中从索引库中查找信息花费时间减少,从而提高中文搜索速度。我们可以使用开源、成熟的分词器,如IKAnalyer、MmsegAnalyer等。

2.搜索

Lucene搜索仅需要几个类就可以简单的实现搜索,它使用Query搜索Analyer分词分析后的关键词,通过IndexSearcher搜索索引文件,返回TopDocs结果。返回的结果中包括了TotalHits结果总数和每条结果记录的Score评分等信息。

四、搜索平台的搭建

1.Solr介绍

Solr是一个基于Lucene的Java搜索引擎效劳器,它包装扩展了Lucene,使用Lucene库实现的一个HTTP效劳,并沿用了Lucene的技术术语,Solr创立的索引文件能与Lucene搜索引擎库完全兼容。应用程序使用HTTP协议或Solr提供的API进行提交索引和检索,只要能和Solr效劳器进行通信,就能非常简单快捷的在应用程序中实现全文检索功能。图4.1展示Solr整体的运行结构。

图4.1Solr整体运行结构

2.Solr搜索平台的搭建

Solr的运行需要依赖于JAVAWeb效劳器,它可以部署在Tomcat、JBoss、Jetty等Web效劳器上。下面是Solr与Tomcat整合的步骤。

2.1建立文件夹

建立Solr主文件夹,建立home和server目录,同时在home文件夹下建立data文件夹用于放置索引文件。将下载的Solr程序里的solr.war内容解压到server下,用于Solr的效劳:

2.2添加Solr运行环境到Tomcat:

修改server.xml

在节点下添加Solr运行环境:

2.3更改Solr配置文件:

更改索引文件夹配置:

${solr.data.dir:c:\solr\home\data}

完成后,运行Tomcat,输入地址:http://localhost:8080/solr,就可以进入Solr管理页面,基于Solr的根底搜索平台就已经搭建起来

3.Solr应用

3.1自定义字段

要使Solr可以处理我们自己的索引,要做的就是在Schema中配置自己的字段〔Solr的字段与数据库字段概念类似〕。Schema是Solr业务逻辑的核心,一个文档包含哪些字段,字段是否被索引,如何索引,如何被查询都在Schema中定义。在Solr的conf目录下的Schema.xml文件中定义自己的字段类型和字段信息,配置文件里也定义了初始的一些字段类型和字段,如整型、浮点、字符串等。下面是自定义字段信息〔indexed表示是否索引,stored表示是否存储在索引文件中〕:

3.2HTTP请求接口

Solr对外提供HTTP接口参数来实现对数据的索引的增加、删除、修改、查询。用户通过向部署在Web效劳器中的Solr应用程序发送HTTP请求来执行索引和搜索。Solr接受请求后通过HTTP以同样的方式返回响应,默认配置返回Solr的规范XML响应,也可以配置Solr让其返回JSON等其它响应格式。参数跟在HTTP链接后面,可以在网页表单中使用。如q〔查询〕参数用法:

http://localhost:8080/solr/select/?q=id:00001

3.3SolrJ

SolrJ是Solr提供的基于JAVA的接口,提供了完整的操作Solr的API。它躲避了使用HTTP接口参数中拼接字符串链接的繁琐,可以和使用Lucene一样直接、灵活的嵌入在JAVA程序中操作Solr。

4.Solr性能测试

为了测试Solr的搜索性能,本文将Solr的搜索与SQL中的常用的like查询语句做性能比拟。

测试环境:Solr效劳器部署在CentOS6.3Linux系统的虚拟机中,系统无其他应用。SQL效劳器使用装在WindowsServer2022系统下的MSSQLServer2022。

测试内容:针对1个有1,324,844条记录的表做查询测试,Solr通过DataImportHandler〔DIH〕办法将数据导入到索引库中〔100万条数据导入时间是54.496秒〕。

测试:为了保证搜索结果的准确,没有使用客户端。Solr使用Solr效劳器自带的管理界面进行查询,SQL中使用SQLServer2022自带的企业管理器进行查询。

Solr测试办法:在Solr管理界面里填入“关键字〞查询,返回结果中QTime表示查询时间,单位为毫秒。SQL测试办法:在企业管理器的查询界面输入like‘关键字’语句查询,返回查询语句执行的时间。

根据上述办法,连续随机找了20个关键字进行查询,形成如下比照图。

从上图可以看出,虽然仅有100万条的数据,排除各种客观因素,Solr查询的时间也仅是数据库查询的百分之一量级。我们知道Like查询语句不能利用数据库建立的索引,搜索过程实际上仍然是从头到尾的遍历过程,随着数据量不断的增大,到千万乃至上亿条数据的时候,使用LIKE查询语句,查询性能将会急剧的下降,这时候与搜索引擎的性能比照将不是百分之一的量级了。

五、结论

通过以上对搜索引擎

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论