论文部分内容阅读
小麦是我国重要的粮食作物之一,也是被要求保障绝对安全的作物,但是病虫害的存在对其产量和质量安全产生巨大影响。因此,研发一套针对特定农作物病虫害的检索系统,将网络上的相关数据进行实时、精确、全文检索和管理,对提高农业病虫害知识传播、提高农技人员工作效率,促进病虫害防治均有重要意义和生产价值。本文以小麦病虫害为主题,利用垂直搜索技术,设计并实现一个基于分布式信息采集和数据存储的小麦病虫害主题搜索系统。本系统分为三个模块,主要研究结果如下:(1)设计并实现了主题数据采集模块。本文分析了单机爬虫框架Scrapy的运行原理,通过对其核心模块的定制化开发,使之结合Reids数据库搭建分布式爬虫系统。分布式爬虫使用多台机器的带宽和处理器并行下载网络资源,实现网络资源快速、稳定、可扩展地抓取;系统中引入布隆过滤器实现爬虫过程中URL去重功能,提高了 Redis主机内存利用率;改进向量空间模型算法(VSM),使用基于网页标签加权的TF-IDF值作为特征项的权值,主题信息爬取效果提升约10%。(2)设计并实现了系统索引模块。引入并优化Elasticsearch分布式检索引擎,实现大规模数据高可用、高扩展性的分布式存储;分析器中使用IK分词器并实现热更新词库功能,提升了中文分词效果;设计并建立倒排索引库提高数据检索效率。(3)设计并实现了系统搜索模块。设计搜索数据缓存层,降低用户搜索时索引库的频繁查询操作,较大程度上提升了搜索系统响应速度;基于Django框架开发出原型系统,对接Elasticsearch搜索服务器,向用户提供搜索服务;在实现基本的搜索功能情况下,实现热门搜索功能和近期搜索记录功能,优化用户体验。通过与通用搜索引擎的搜索结果进行比较,在小麦病虫害这一主题下,本系统查准率高于通用搜索引擎,具有一定实用性,可为小麦产业技术人员和广大新型农业主体提供小麦病虫害知识检索服务。