`
vanadiumlin
  • 浏览: 505720 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用开源软件建垂直搜索引擎

阅读更多

用Solr、Nutch等开源软件来构建电子元器件垂直搜索引擎涉及很多实现细节,本文结合实际应用系统对数据采集、中文搜索、结果输出、分页处理、整合数据库等重点问题提出了切实可行的解决方法。

  用开源软件建垂直搜索引擎

  ■ 董娅 周峻松

  针对搜索引擎的各种开源技术是开源社区的一枝奇葩,它大大缩短了构建搜索应用的周期,并使得根据特定需求打造个性化应用的垂直搜索引擎系统成为可能。作为一个独立的企业搜索应用解决方案,Solr在美国的众多知名网站中得到应用,如美国最大的科技资讯类网站CNet。Solr基于高性能的Lucene开发,它不仅实现了比Lucene更为丰富的查询语言和更为优异的查询性能,而且实现了可配置、可扩展,对外提供类似于Web 服务的API接口。用户可通过Http请求向搜索引擎服务器提交指定格式的XML文件生成索引,也可以通过“Http Get”操作提出查询请求,并得到XML格式的返回结果。Solr结合其他开源搜索软件成为构建行业垂直搜索引擎的优选方案。

  垂直搜索引擎的

  总体结构

  本文所述的电子元器件垂直搜索引擎以Solr 1.4为核心框架,综合应用Nutch、IK Analyzer等开源软件,充分利用它们灵活的配置、丰富的功能以及高效的性能,力求用最简单的代码,快速实现海量电子元器件信息的采集、文本搜索、参数检索,满足技术研究人员与市场采购人员对于行业领域知识的专、精、深要求。

  电子元器件垂直搜索引擎系统包括数据采集、数据加工、数据规划和管理、搜索服务四个主要部分。数据采集部分负责对Internet、Intranet、内部电子文档、结构化数据(关系数据库、XML)等进行抓取、滤重、分类、摘要; 数据加工部分负责对采集来的数据进行筛选、编辑和审校; 数据规划和管理部分负责系统元数据的定义与管理,包括分类体系、特性参数、参数类型、计量单位等; 搜索服务则为用户提供分类导航、数据检索、行业报告及其他个性定制服务(系统的总体结构如附图所示)。本文结合选取其中的数据采集(Web页面抓取、结构化数据采集、中文支持)、搜索结果呈现(层面浏览、高亮显示、分页处理)等几个重点实现方法进行介绍。

  数据采集

  1. Web页面抓取

  采集互联网Web页面的数据并非Solr所长,我们可以借助在这方面有着突出表现的Nutch。Nutch基于Hadoop分布式系统,既可以在单台机器上运行,也可以在多台机器构成的集群上运行。Nutch可以根据用户需要配置优先抓取某些页面,而且抓取质量很高。

  本系统我们利用Solr作为处理搜索结果的源和入口,而让Nutch负责它最擅长的工作: 抓取和提取内容。Nutch的配置文件是nutch-site.xml,配置的内容包括指定蜘蛛的名称、激活插件、限制单机一次运行抓取的最大URL数、指定抓取规则等。完成这些基本配置以后就可以进行抓取分析操作。

  2. 结构化数据采集

  为了充分利用现有资源,提高数据检索效率,我们把收录了100多万条电子元器件产品、1000多万条特性参数信息的中国电子元器件产品数据库和中国电子厂商数据库、韩国电子元器件信息库作为结构化数据源,向Solr一次全部导入数据,后续维护的部分使用增量导入。用于搜索的表主要涉及产品基本信息表、厂商基本信息表、分类表、特性参数表、参数模板表、模板信息表、产品特性参数值表、计量单位表等。

  Solr通过可配置的方式将数据库中多列、多表的数据生成Solr文档。配置的方法是在域结点内定义具体的字段(类似数据库中的字段),然后通过配置文件导入所有数据,发现并处理由插入、更新带来的变化。

  3. 中文搜索支持

  Solr的分析包并没有直接提供中文搜索支持。这里选用轻量级的中文分词工具包IK Analyzer来配合工作。IK Analyzer基于Java开源,如今新版本的IKAnalyzer 3.2.0已发展为面向Java 的公用分词组件,独立于Lucene 项目,同时提供了对Solr的专用接口。

  电子元器件搜索引擎系统利用的IK Analyzer特性包括: 特有的“正向迭代最细粒度切分算法”具有60 万字/秒的高速处理能力; 多词元处理器分析模式,支持英文字母(IP 地址、Email、URL)、数字(日期、常用中文数量词、罗马数字、科学计数法),中文词汇(姓名、地名处理)等分词处理; 优化的词典存储更小占内存用; 针对Lucene 全文检索优化的查询分析器IKQueryParser; 采用歧义分析算法优化查询关键字的搜索排列组合,可极大地提高检索的命中率。

  由于电子元器件垂直搜索应用面向特定的专业领域,IK Analyzer本身虽然已经提供很丰富的常用词汇,但对于专业性强的应用仍然显得捉衿见肘。好在IK Analyzer提供了良好的扩展能力,我们利用配置文件轻易实现了用户词典的扩展与定制,这样就可以搜索到如“精密薄膜柱状无引线电阻器”、“半波随机型固体继电器”这些专业词汇了。

  搜索结果呈现

  Solr的搜索结果通常以XML格式返回,这对于普通用户而言不合适,不过Solr提供了多种途径(如正则表达式和文本解析)将搜索返回的结果信息进行重新布局,以产生用户易于理解的可视页面,但都需要大量的编码工作。在系统中我们利用XSLT把XML格式的结果文件转换成HTML文件。经过转换后,就可以得到能看到搜索结果的页面了。

  Solr提供了层面浏览(facet)功能,它类似于一种分类筛选。运行层面无需在Solr 中进行配置,但可能需要按照新的方式对应用程序内容进行索引。在已索引的字段中完成分层,层面对未进行断词的非小写词最为有效。Facet 字段通常不需要存储,因为分层面的总体思想就是将可读的值显示给用户。要注意的是, Solr 没有在层面中创建类别,必须由应用程序自身在索引期间进行添加,正如在索引应用程序时给文档指派关键字一样。如果存在层面字段,Solr 就提供了查明这些层面及其计数的逻辑。

  另外,为了在搜索结果中取得最匹配的一段文本并突出显示出来,有必要对搜索结果进行高亮显示。高亮显示可修改配置文件实现。该配置中包括了高亮文本时使用的前缀和后缀(通常在此指定突出显示文本的字体、字号、颜色或其他风格)。

  如果搜索结果较多还需要分页,但我们不希望自行编写复杂的代码实现分页。我们在系统中使用了一个开源的分页插件,专门为Solr量身定制,由它对 Solr 的搜索结果进行分页处理。

  实际上,Solr的功能远不止以上这些,还有很多通过简单配置和少量修改即可实现的搜索功能有待研究开发。目前,我们围绕以Solr为主体的探索以及各项功能的实现仍在继续,力求在保证系统功能与性能的前提下,充分利用开源软件的优势,降低开发成本。

  (作者单位:董娅为电子工业出版社、周峻松为工业和信息化部电子科学技术情报研究所)

  

用开源软件建垂直搜索引擎
 

 

  图注:电子元器件垂直搜索引擎系统结构图

<!-- publish_helper_end --><!-- {09正文所属专题显示} -->
分享到:
评论
1 楼 lovepoem 2011-06-30  
你这个实现了数据库数据和 爬虫抓取数据的联合检索了吗?

相关推荐

    垂直搜索引擎完全开源版

    网博垂直搜索引擎完全开源版 1.前台结合Lucene的搜索引擎功能,使得数据搜索更快; 2.新增加采集功能,采集时图片下载,flash下载功能,默认配置的是南海网分类信息的采集规则; 3.该代码简洁,完全开源,可以与...

    利用开源工具搭建小型搜索引擎

    以抓取结果作为数据库,建立垂直搜索引擎,实现这些网站信息的抽取、索引和检索。网页数目不少于1万条。 3)搜索测试:搭建web平台(建议通过Tomcat实现),通过web平台实现垂直搜索引擎系统的搜索功能。

    垂直搜索引擎完全开源版 c#开发基于Lucene.net 带效果预览图片

    垂直搜索引擎完全开源版 c#开发基于Lucene.net 1.前台结合Lucene的搜索引擎功能,使得数据搜索更快; 2.新增加采集功能,采集时图片下载,flash下载功能,默认配置的是南海网分类信息的采集规则; 3.该代码简洁,...

    HiGo垂直搜索引擎系统开源版(基于lucence mysql asp.net) v2.2.rar

     HiGo垂直搜索引擎开源版系统需要独立服务器支持,也可以用你本地电脑做服务器来调试,基于lucence mysql asp.net, 支持数据索引,中文分词,模糊查询,爬虫采集,精确采集规则模式和模糊采集规则模式相混合(模糊...

    基于Java的垂直搜索引擎的设计与实现.pdf

    - **设计思路**:设计一个针对手机产品的垂直搜索引擎,首先要明确目标用户群体的需求,然后选择合适的开源工具和技术栈,如使用Heritrix进行网页抓取、Lucene进行数据索引等。 - **实现步骤**: 1. **网页抓取**:...

    heritrix与Lucene的垂直搜索引擎研究

    垂直搜索引擎是一种针对某一特定领域或行业的搜索引擎,其目的是为了提高搜索结果的相关性和精确度。与传统搜索引擎相比,垂直搜索引擎通常能提供更加精确且结构化的搜索结果。例如,酷讯的火车票搜索和搜房的房屋...

    垂直搜索引擎的研究与设计

    ### 垂直搜索引擎的研究与设计 #### 一、引言 随着互联网的飞速发展,网络信息资源呈现爆炸式增长态势,这给通用搜索引擎带来了前所未有的挑战,尤其是在信息采集与存储方面。与此同时,现代商务人群对搜索结果的...

    前程无忧垂直搜索引擎项目实战

    《前程无忧垂直搜索引擎项目实战》是一门深度探讨如何构建高效、针对性强的搜索引擎的实践课程。本项目主要聚焦在Java技术栈上,利用DWR(Direct Web Remoting)进行前后端交互,同时结合了Lucene和Heritrix这两款...

    [搜索链接]网博垂直搜索引擎完全开源版_sbczss.zip源码ASP.NET网站源码打包下载

    [搜索链接]网博垂直搜索引擎完全开源版_sbczss.zip源码ASP.NET网站源码打包下载[搜索链接]网博垂直搜索引擎完全开源版_sbczss.zip源码ASP.NET网站源码打包下载[搜索链接]网博垂直搜索引擎完全开源版_sbczss.zip源码...

    网博垂直搜索引擎完全开源版

    网博垂直搜索引擎完全开源版 1.前台结合Lucene的搜索引擎功能,使得数据搜索更快; 2.新增加采集功能,采集时图片下载,flash下载功能,默认配置的是南海网分类信息的采集规则; 3.该代码简洁,完全开源,可以与...

    基于Lucene和Heritrix的职位垂直搜索引擎的设计与实现

    这篇论文的核心是利用开源工具Lucene和Heritrix来构建一个针对职位信息的垂直搜索引擎,旨在提高招聘行业的信息检索效率和准确性。 首先,Lucene是一个强大的全文搜索引擎库,它提供了文本分析、索引和搜索的基本...

    网博垂直搜索引擎完全开源版_搜索链接应用程序.rar

    《网博垂直搜索引擎完全开源版:深度解析与应用探索》 在互联网的海量信息中,搜索引擎扮演着至关重要的角色,帮助用户快速定位所需内容。网博垂直搜索引擎完全开源版,作为一个专门为特定领域定制的搜索解决方案,...

    HiGo垂直搜索引擎系统 v7.3.rar

    HiGo垂直搜索引擎开源版系统需要独立服务器支持,也可以用你本地电脑做服务器来调试,基于lucence mysql asp.net,支持数据索引,中文分词,模糊查询,爬虫采集,精确采集规则模式和模糊采集规则模式相混合(模糊采集...

    基于Lucene_Heritrix的垂直搜索引擎的研究与应用

    ### 基于Lucene_Heritrix的垂直搜索引擎的研究与应用 #### 一、垂直搜索引擎的基本介绍 垂直搜索引擎是一种专注于特定领域或特定主题的信息检索工具。与通用搜索引擎相比,垂直搜索引擎更加聚焦,旨在为用户提供...

    基于Lucene.Net垂直搜索引擎源码

    基于Lucene.Net垂直搜索引擎完全开源版.rar

    商业源码-编程源码-网博垂直搜索引擎完全开源版.zip

    【网博垂直搜索引擎完全开源版】是一款专为商业环境设计的源码产品,它提供了强大的信息检索和数据处理能力,适用于各种垂直领域的信息整合与搜索。这个开源版本允许用户深入理解其工作原理,并可根据实际需求进行...

Global site tag (gtag.js) - Google Analytics