欢迎来到天天文库
浏览记录
ID:26374231
大小:303.28 KB
页数:12页
时间:2018-11-26
《基于lucene的搜索方案lucene 简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于lucene的搜索方案一、Lucene简介Lucene是apache的一个顶级开源项目,由java实现的全文检索引擎,能基于各种文档格式的全文索引和检索,包括word、pdf,不包括图形类。Lucene.net是C#版的lucene是由java的lucene翻译过来的,也被apache列为开源项目对外发布,功能和java的基本一样,但是由于缺乏良好的技术支持和社区活跃度,目前已被apache放入孵化器Lucene写入:源文件经过analyzer处理,包括分词,权重处理、生成document记录,写入存储器(硬盘或者内存)。Lucene读出:对搜索关键词进行analyzer处理,包
2、括分词、权重、范围匹配处理.源码结构图如下:具体流程如下图:数据流图如下:二、常用推荐引擎算法问题采用基于数据挖掘的算法来实现推荐引擎是各大电子商务网站、SNS社区最为常用的方法,推荐引擎常用Content-Based推荐算法及协同过滤算法(Item-Based、User-based)。但从实际应用来看,对于大部分中小型企业来说,要在电子商务系统完整采用以上算法还有很大的难度。1)、相对成熟、完整、现成的开源解决方案较少粗略分来,目前与数据挖掘及推荐引擎相关的开源项目主要有如下几类:数据挖掘相关:主要包括Weka、R-Project、Knime、RapidMiner、Orange等文
3、本挖掘相关:主要包括OpenNLP、LingPipe、FreeLing、GATE、Carrot2等,具体可以参考LingPipe’sCompetition推荐引擎相关:主要包括ApacheMahout、Duineframework、SingularValueDecomposition(SVD),其他包可以参考OpenSourceCollaborativeFilteringWritteninJava搜索引擎相关:Lucene、Solr、Sphinx、HibernateSearch等2)、常用推荐引擎算法相对复杂,入门门槛较高3)、常用推荐引擎算法性能较低,并不适合海量数据挖掘以上这些包
4、或算法,除了Lucene/Sor相对成熟外,大部分都还处于学术研究使用,并不能直接应用于互联网规模的数据挖掘及推荐引擎引擎使用。(以上都是基于java的,需要自己去研究实现,有很大难度)备注:除了分类查找和主动搜索,推荐系统也是用户浏览商品的重要途径,能帮助用户发现类似并感兴趣的产品,增加商品的访问量,将访问者转化为购买者,引导用户购买。最终产生的价值是提升用户购物体验和用户粘度,提高订单量,如Amazon30%的订单来自推荐系统。采用Lucene实现推荐引擎的优势对很多众多的中小型网站而言,由于开发能力有限,如果有能够集成了搜索、推荐一体化的解决方案,这样的方案肯定大受欢迎。采用L
5、ucene来实现推荐引擎具有如下优势:1)、Lucene入门门槛较低,大部分网站的站内搜索都采用了Lucene2)、相对于协同过滤算法,Lucene性能较高3)、Lucene对TextMining、相似度计算等相关算法有很多现成方案在开源的项目中,Mahout或者DuineFramework用于推荐引擎是相对完整的方案,尤其是Mahout核心利用了Lucene,因此其架构很值得借鉴。只不过Mahout目前功能还不是很完整,直接用其实现电子商务网站的推荐引擎尚不是很成熟。只不过从Mahout实现可以看出采用Lucene实现推荐引擎是一种可行方案。3、采用Lucene实现推荐引擎需要解决
6、的核心问题Lucene对于TextMining较为擅长,在contrib包中提供了MoreLikeThis功能,可以较为容易实现Content-Based的推荐,但对于涉及用户协同过滤行为的结果(所谓的RelevanceFeedback),Lucene目前并没有好的解决方案。需要在Lucene中内容相似算法中加入用户协同过滤行为对因素,将用户协同过滤行为结果转化为Lucene所支持的模型。推荐引擎的数据源电子商务网站与推荐引擎相关典型的行为:购买本商品的顾客还买过浏览本商品的顾客还看过浏览更多类似商品喜欢此商品的人还喜欢用户对此商品的平均打分因此基于Lucene实现推荐引擎主要要处理
7、如下两大类的数据1)、内容相似度例如:商品名称、作者/译者/制造商、商品类别、简介、评论、用户标签、系统标签2)、用户协同行为相似度例如:打标签、购买商品、点击流、搜索、推荐、收藏、打分、写评论、问答、页面停留时间、所在群组等等5、实现方案5.1、内容相似度基于LuceneMoreLikeThis实现即可。5.2、对用户协同行为的处理1)、用户每一次协同行为都使用lucene来进行索引,每次行为一条记录2)、索引记录中包含如下重要信息:商品名、商品id、商
此文档下载收益归作者所有