摘 要: 随着工业4.0及智能制造的迅速崛起,工业互联网深入应用到制造企业的各个方面,企业内部信息资源在不断地快速增长,面对繁多的信息资源如何准确快速的检索出想要的信息已成为一个亟需解决的问题。针对这一问题,本文提出基于Solr的搜索引擎在卷烟企业资源整合与检索的应用。
关键词: Solr; 搜索引擎; 全文检索; 中文分词;
1 、前言
随着网络技术的不断发展,人们对互联网的参与度增加以及企业在信息化的不断深入,信息量也在快速的增长。人们通过计算机来获取所需数据的需求也越来越强烈,面对日益增加的海量数据,如何从中准确快速的获取所需的数据已成为亟需解决的问题。若企业能够拥有符合自身需求的定制化检索系统这将对提高企业效率、提升企业竞争力有着重要的作用。
1.1 、探析背景及意义
随着计算机网络及人工智能的不断发展,信息呈现多元化、革新快、数据大等特点。搜索引擎在互联网的发展中起着重要的作用,它可以帮助人们从已有的网页中获取相关信息。根据相关的算法可以准确地搜索特定范围信息或互联网信息,为了适应互联网数据的高速积累的状态,搜索引擎技术也在不断的发展。不管在生活还是工作的各个领域我们都会接触到个各种各样的信息,这些信息可以有多种表现形态如文字、图片、声音、视频等,这些信息我们可以通过文字对其进行描述,在生活或工作中我们经常会使用一些搜索引擎来搜索我们需要的信息资源,如在百度、谷歌等搜索引擎中输入关键字或相关内容的部分文字,随着经济的发展,企业的业务范围也在不断地延伸与拓展,企业所产生的信息数据也在快速的增长,但是很多企业的内部信息并未发布上传至互联网上,在工作中我们想要获取一些自己所需的企业内部信息时,这些搜索引擎显然不能帮我们实现。企业的一些内部信息往往核心价值的所在,也往往是不愿对外部公开的,如产品的具体生产工艺流程、产品的详细配方资料、企业内部的人员信息、生产技术的实施方案等。而市面上常见的互联网搜索引擎都是由商业公司提供的,存在一定的泄密风险,若企业的一些核心信息一旦被泄露极有可能对企业造成重大的损失。因此我们需要拥有符合企业自身需求的检索系统,实现安全、高效、稳定的企业内部所搜引擎。
卷烟企业经过多年不断的发展,在制造能力上的不断提升,及产品多元化的发展趋势,已积累了大量有价值的数据信息。如各个车间的设备清单、设备详细说明书、生产制造的工艺流程、产品配方、品质把控方案、会议纪要、招投标等信息,这些数据信息存放于不同的部门或系统中。存在标准不统一、数据结构不统一、没有专门的管理人员,没有统一的管理规范等问题,在要查找使用这些数据时需要耗费较多的时间及精力。需要对这些数据信息进行有效的资源整合,提高检索效率。
1.2、 国内外所搜引擎现状
搜索引擎已成为互联网中一个不可或缺的网络工具,因为通过它可以帮助用户从海量的互联数据中获取用户所需的信息。根据搜索引擎使用技术的不同,目前可分为三大类,目录式搜索引擎、元搜索引擎、索引式搜索引擎。
目录式搜索引擎,是最早出现的基于www的搜索引擎,依靠人工发现信息然后对信息进行分类、提取主题词、建立关键字索引和目录分类体系,形成树状结构。目录式搜索引擎的例子有Yahoo和新浪分类目录。
元搜索引擎。它将多个搜索引擎集中起来,提供统一的检索界面给用户。因此元搜索引擎可以理解为一个经过包装的搜索引擎群体。相当于中介工具。
索引式搜索引擎的核心为网络蜘蛛,是依靠网络蜘蛛在互联网或者特定网络中自动地从互联网上获取信息来建立索引,并采用一定得方法对索引库进行更新,以确保索引库与互联网上信息的实时对应。索引式的例子有Google、百度等。
随着开源搜索引擎出现,这对认识和了解搜索引擎的技术及原理的提供了较好的途径。借助开源代码,可以帮助企业开发属于自己系统的搜索引擎,可以提高开发效率和质量,这一开源行为对特定环境的搜索引擎提供方便。随着互联网技术的革新和拓展智能化的、个性化的智能搜索引擎将会成为今后搜索引擎的发展趋势。
1.3 、开源搜索引擎研究的意义
目前各地的卷烟厂已积累了相当规模的信息数据,对搜索技术的需求在不断的增加,因各地企业之间应管理模式和生产模式存在着差异,所积累的信息数据类型也不仅相同,各地卷烟厂对搜索需求存在着一定的差异,例如有的是对数据库搜索有较大的需求、有的文档的搜索有较大的需求、有的是对网页有较大的需求等等。而卷烟企业是专注于烟草的制造加工,若要开发出类似于大型商业搜索引擎显得不太实际。因为这需要组建自己的开发团队来开发搜索引擎,同时要花巨资购买专业化的搜索引擎,而且开发周期长,这样操作的成本显然过高。
由于大型的商业搜索引擎不对外开放源码,大部分人只能徘徊在专业搜索引擎之外。而开源搜索引擎开放的源代码将为人们认识、学习和研究搜索引擎提供良好的环境。因为其开放的源码将可以帮助开发人员快速地开发符合企业个性化的搜索引擎,这样将大大节省开发成本和缩短开发周期。开源搜索引擎也能吸引更多的人来贡献自己的智慧,这也必将推动搜索引擎技术的进步。
2 、建立企业级搜索引擎方案的选型
烟草行业涉及面广,从种植培育、烤烟、卷烟、包装再到销售需要大量的人工参与。各个环节都需要计划性指导生产,随着我国工业自动化和网络信息化的不断发展,越来越多的生产过程都有机械及网络的参与。在烟草生产的每个过程中都会有大量的信息数据产生,比如生产指导计划、生产设备信息、产品分类信息、过程控制信息、生产工艺信息、产品销售信息等等。卷烟企业是烟草生产的一个重要环节。它是从香烟制造到广大消费客户手中的最后一个环节,从烟叶的采购、制丝、掺配、卷接、包装在到销售都会有数据的产生,这些数据对卷烟企业来说都是及有价值的数据。在日常的生产活动中用户如何便捷快速准确地获取信息已成为一个亟需解决的问题。开发属于符合自己企业的搜索引擎是一个行之有效的方法。目前的开发引用模式主要有以下几种:
(1)调用谷歌、百度等第三方的API实现信息检索,这种方法对第三方搜索引擎过于依赖,不方便后期扩展业务需求。
(2)企业开发出自己的索引工具和软件,对信息进行检索,这用方法开发周期长,也要专业的团队来开发,开发成本高。
(3)基于solr实现信息的检索,经过多年的发展solr提供了完备的解决方案,封装及扩展性较好。
对比以上几种方法可以得出卷烟企业采用基于solr开发符合自己企业所需的方案具有较强的可行性。
3 、相关技术介绍
3.1、 搜索引擎技术
搜索引擎是用来从互联网和数据库中检索相关信息。在检索信息时需要对信息数据进行收集、标引、构建索引机制。其目的是从海量的信息数据中快速准确地找到用户所需的信息。虽然市面上的搜索引擎种类繁多,但其功能模块基本是一致的,搜索引擎之所以能够快速地检索出用户所需的信息主要依赖于以下三大核心功能:
(1)索引库:索引库是存储信息的地方,也是用户查询结果保存的地方。
(2)索引器:索引器是生成索引模块的地方,将处理过的信息数据包装成文档,在索引器中建立该文档的索引。
(3)用户检索机制:提供搜索界面,完成搜索请求并将检索结果展示给用户。
以上三大核心功能虽然可以组成一个简单的搜索引擎,但不能方便的处理现存的各种文档,如Word、Excel、HTML等。使用起来显得非常不方便,所以一个完善的搜索引擎还需要其他模块的支持。除了文档解析外搜索引擎还需要从海量信息数据中准确的检索出用户所需的内容,这需要用到分词技术,我们使用的是中文不像英文一样在每个单词间有个空格分隔,因此我们使用针对中文汉字的分词技术,我们称之为中文分词。所以一个完善的搜索引擎还需要文档解析模块、中文分词模块、网页处理模块、以及人机交互的用户界面等。其基本结构如图1所示。
图1 中文搜索引擎基本结构
3.2 、Solr的相关知识
solr是一个独立的企业级搜索应用服务器,对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,实现了可配置、可扩展并对查询性能进行了优化,提供了完善的功能管理界面,是一款优秀的全文搜索引擎。
3.2.1 、solr的工作机制
solr是在lucene工具包的基础之上进行了封装,以web服务的形式对外提供索引功能,在需要使用到索引功能时,只要发出http请求,并将返回数据进行解析即可。solr可以独立运行在Jetty、Tomcat等这些Servlet容器中,solr索引的实现方法很简单,用POST方法向solr服务器发送一个描述Field及其内容的XML文档,solr根据xml文档添加、删除、更新索引。solr搜索只需要发送http get请求,然后对solr返回Xml、json等格式的查询结果进行解析,组织页面布局。solr提供了一个管理界面,通过管理界面可以查询solr的配置和运行情况。
3.2.2 、solr的体系结构
一个完整的solr服务器应该包含主体、主目录和客户端三个部分。其中主体部分部署在服务器(如Tomcat)上,它一方面通过Servlet对外提供HTTP调用接口,另一方面通过JNDI等技术使得主体部分与主机上的主目录相关联;主目录是存储索引数据的地方,这里不仅存储索引数据,还存储模式和配置文件,solr允许多个独立的索引数据库(称作核心Core);客户端是可选的结构,我们可以通过客户端来调用服务器,也可以直接通过浏览器来访问服务器。体系结构如图2所示。
图2 Solr体系结构
4 、基于solr引擎的信息检索系统的实现
4.1、 中文分词模块
中文分词技术是中文搜索引擎的核心技术,一个中文句子如果在不同的地方进行分词可能得到不一样的效果及意思,在分词时处理起来非常复杂。若要企业自主研发这需要非常专业的团队,在研发过程中还需要消耗极大的财力,并且开发周期长。目前网上已经可以找到较好的分词器。比如IKAnalyzer分词器。我们可以下载这些分词器与Solr搜索服务器的整合来实现中文分词。
4.2、 索引模块
建立索引、更新索引和删除索引是我们对索引的常用操作,通过Http协议的post方法将表示具体动作的xml消息提交给Solr,来驱动引擎执行相关的操作。索引的添加和更新采用相同的xml消息,类似数据库概念中的主键,需要为索引定义主键,来唯一标识一条索引记录:<unique Key>id</unique Key>。我们也可以自定义自己的索引字段,其中特别需要注意的是type属性的值同配置中文分词器IKAnalyzer的filedtype中的name属性必须相同。自定义索引域完成后,须要将Solr与数据库的整合,我们可以利用Solr文件中自带的Dataimport插件,批量将数据库中表的数据导入到索引库中。
4.3、 查询模块
查询模块是与用户进行交互的模块,从接口上可以有多种实现方式。常见的主要有Web方式,另外还可以通过无线接入方式(例如手机、平板等终端)进行查询。通过用户输入的关键字,向Solr发出查询请求,Solr接收到请求后进行查询并返回相应的的查询结果返回给用户。
4.4 、管理员模块
管理员模块主要是基于索引库实时更新数据信息,给信息管理员提供一个后台维护的窗口。为用户检索系统提供了数据一致性,避免因为出现不同版本或错误的信息数据而造成的问题,这样不仅能保证数据的准确性,同时也可以避免因为数据错误而给企业带来经济或信誉上的损失。
5 、总结
Solr是一种深受开发者喜爱的开源搜索引擎,它功能强大、容易实施、可灵活扩展。为数据资源的整合、索引、检索提供了一系列完备的解决方案。本文从卷烟企业对信息数据检索的需求出发,论述了基于Solr开发出符合自身企业的搜索引擎的可行性,介绍了有关搜索引擎及Solr的相关知识。随着大数据时代的到来,各行各业的信息数据在急剧增加。卷烟企业也不例外,若企业能够拥有符合自身的个性化高效搜索引擎,将能够提升企业的效率,使企业积累的数据更具有价值。
参考文献
[1]潘宁宁.基于Solr的全台网门户检索系统的设计与实现[J].现代电视技术,2016(9):126-129.
[2]霍庆,刘培植.使用Solr为大数据库搭建搜索引擎[J].软件,2011(6):11-14.
[3]高建忠,凌黎.基于Apache Solr平台的学位论文原型系统研究[J].当代图书馆,2016(1):4-6.
[4] 兰小伟. Solr权威指南(上卷)[M].北京:机械工业出版社,2018.
[5]张广庆,朱登峰,岳琪佳.中文分词在标准信息检索中的应用[J].质量探索,2017(1):79-82.