- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用开源软件建垂直搜索引擎
用开源软件建垂直搜索引擎 用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提供了良好的扩展能力,我们利用配置文件轻易实现了用户词典的扩展与定制,这样就可以搜索到如“精密薄膜柱状无引线电阻器”、“半
文档评论(0)