论文部分内容阅读
随着移动互联网快速发展,人人都可以通过高速网络在智能手机端获取互联网信息,而移动互联网搜索便是日常人们获取信息的主要方式之一。移动搜索有其自身的特点,由于智能手机自身的局限性如屏幕小、计算能力弱等,所以在面向海量的结果集中往往难以准确地定位到精确、个性化的结果。位置服务是在GIS平台的支持下为用户提供准确的地理位置服务。当前很多相关的行业如社交、生活等应用中,都包含有类似“附近搜索”的功能,为用户提供精确服务。特定的行业结合附近搜索功能,就是垂直型位置搜索服务。垂直型的位置检索服务主要整合行业领域的关联资源,通过搜索可以为用户提供更加个性化的信息服务。本文基于开源企业级全文检索引擎Solr实现了位置服务检索系统。首先基于网络爬虫技术设计并实现了信息集成子系统。该子系统主要研究并实现了任务调度、URL去重、析取以及存储四个方面的关键技术。任务调度模块重点研究了深度优先的URL调度策略算法;URL去重模块则研究分析并实现了Bloom Filter去重算法;析取模块主要利用了pyquery解析HTML网页,以及研究分析网络爬虫过程中伪代理、反防盗链等技术;存储模块则主要为MySQL数据库存取接口的设计与实现。其次,基于Solr设计并实现了移动互联网位置检索子系统,其中主要包括了空间索引、索引创建、搜索、缓存和分布式五个方面。空间索引主要研究分析了GeoHash和Cartesian Tiers分层算法原理,重点探讨了Geo Hash算法编码;索引模块则主要实现了smartcn、IKAnalyzer和Ansj三种比较高效的中文分词算法;搜索模块主要研究如何构建查询语句;缓存则着重研究分析了Solr中filterQueryCache、documentCache和queryResultCache三种缓存原理以及实现;分布式主要研究分析了Solr分布式索引和查询的原理并且实现了3个节点的分布式集群,提高了系统的可靠性和性能。最后,针对不同功能模块分别作了相应的功能测试,并利用SolrMeter和Ganglia对系统做了性能的测试分析,验证了系统满足需求。