构建自己的购物搜索引擎一:写一个简单的
2011-09-14 10:55
323 查看
记得2010年10月9号,淘宝全网搜索引擎一淘网上线,当时不怎么关注,只是在网站上看到过新闻而己,前两个月,觉得是时候走确定自己以后要走的方向了,于是决定以后加入到搜索的行列中,此时开始关注一淘网的技术,来打开搜索的大门。
那么做搜索引擎要做哪些内容呢,以前有人也这样问过nutch,lucene,hadoop之父Doug Cutting,他回答大致应该分为以下几部分:
1) 攫取(fetching):就是把被指向的网页下载下来。通常就是日常所说的网络爬虫的工作。
2)
数据库:保存攫取的网页信息,比如那些网页已经被攫取,什么时候被攫取的以及他们又有哪些链接的网页等等。
3) 链接分析:对刚才数据库的信息进行分析,给每个网页加上一些权值(比如PageRank,WebRank什么的),以便对每个网页的重要性有所估计。不过,在我看来,索引那些网页标记(Anchor)里面的内容更为重要。(这也是为什么诸如Google Bombing如此高效的原因
4) 索引(Indexing): 就是对攫取的网页内容,以及链入链接,链接分析权值等信息进行索引以便迅速查询。
5) 搜索(Searching): 就是通过一个索引进行查询然后按照网页排名显示
根据这几部分,我们可以自己写一个简单的购物搜索引擎。
第一步:抓取数据
目前开源的网络爬虫有很多,nutch,heritrix都可以算是其中的佼佼者。这里我们先自己动手写一个简单的。
仔细看淘宝的网站,会发现,基本上商品信息比较全的页面全都是以item.taobao开头的,那我们用chrome的开发人员工具分析一下页面结构。
如下图:
搜索
我们搜索一下“女装”,看一下出来的结果:
这里只是简单的打印出来,有兴趣的可以弄个web,将结果显示出来。
好了,已经初步构建好一个最简单的购物搜索擎了,由于个人水平原因,可能代码写的有点……,但不管怎么说,是一个开始,接下来会慢慢完善的。
源代码下载
程序运行所需文件与搜集到的内容
那么做搜索引擎要做哪些内容呢,以前有人也这样问过nutch,lucene,hadoop之父Doug Cutting,他回答大致应该分为以下几部分:
1) 攫取(fetching):就是把被指向的网页下载下来。通常就是日常所说的网络爬虫的工作。
2)
数据库:保存攫取的网页信息,比如那些网页已经被攫取,什么时候被攫取的以及他们又有哪些链接的网页等等。
3) 链接分析:对刚才数据库的信息进行分析,给每个网页加上一些权值(比如PageRank,WebRank什么的),以便对每个网页的重要性有所估计。不过,在我看来,索引那些网页标记(Anchor)里面的内容更为重要。(这也是为什么诸如Google Bombing如此高效的原因
4) 索引(Indexing): 就是对攫取的网页内容,以及链入链接,链接分析权值等信息进行索引以便迅速查询。
5) 搜索(Searching): 就是通过一个索引进行查询然后按照网页排名显示
根据这几部分,我们可以自己写一个简单的购物搜索引擎。
第一步:抓取数据
目前开源的网络爬虫有很多,nutch,heritrix都可以算是其中的佼佼者。这里我们先自己动手写一个简单的。
仔细看淘宝的网站,会发现,基本上商品信息比较全的页面全都是以item.taobao开头的,那我们用chrome的开发人员工具分析一下页面结构。
如下图:
搜索
/** * 信息搜索 * @author xiaoruoen * */ public class Search { private Logger logger = Logger.getLogger(Search.class); public void search(String name){ try { //打开索引存放的目录 Directory dic = FSDirectory.open(new File(CommonData.index)); //创建索引搜索 IndexSearcher search = new IndexSearcher(dic); //创建中文分词 Analyzer analyzer = new IKAnalyzer(); //开始搜索 QueryParser parser = new QueryParser(Version.LUCENE_32,"title",analyzer); Query query = parser.parse(name); TopDocs hits = search.search(query,100); //显示搜索结果 logger.info("共找到"+hits.totalHits+"条记录"); logger.info("====================================================="); for(ScoreDoc scoreDoc:hits.scoreDocs){ Document doc = search.doc(scoreDoc.doc); logger.info("名称:"+doc.get("title")); logger.info("价格:"+doc.get("price")); logger.info("图片:"+doc.get("pic")); logger.info("网址:"+doc.get("url")); } } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } }
我们搜索一下“女装”,看一下出来的结果:
INFO (2011-09-14 10:39:15,593) - 共找到63条记录 INFO (2011-09-14 10:39:15,593) - ===================================================== INFO (2011-09-14 10:39:15,625) - 名称:CIMARRON 堆堆领 女装 长袖 舒适显瘦 针织衫 INFO (2011-09-14 10:39:15,625) - 价格:3200 INFO (2011-09-14 10:39:15,625) - 图片:i4/T1sxtSXddGXXachFs3_045631.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=12267518050 INFO (2011-09-14 10:39:15,625) - 名称:2011秋冬装新品 修身风衣双排扣 韩版女装风衣 女装中长款外套 INFO (2011-09-14 10:39:15,625) - 价格:19000 INFO (2011-09-14 10:39:15,625) - 图片:i3/T1sPxWXdhNXXXSNBQ3_050815.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=12523597229 INFO (2011-09-14 10:39:15,625) - 名称:秋装新品2011时尚瑞丽新款女装日韩服饰9482 修身仿皮短外套 INFO (2011-09-14 10:39:15,625) - 价格:6300 INFO (2011-09-14 10:39:15,625) - 图片:i8/T1QSCkXcdoXXX5S5s4_053319.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=12488194244 INFO (2011-09-14 10:39:15,625) - 名称:2011韩莉雅 秋装新款女装 时尚休闲长袖短外套HLY1131 INFO (2011-09-14 10:39:15,625) - 价格:18800 INFO (2011-09-14 10:39:15,625) - 图片:i7/T1rOSlXoBqXXaFtvc1_041102.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=13018744492 INFO (2011-09-14 10:39:15,625) - 名称:2011秋装新款专柜正品女装时尚休闲翻领绣花 短外套 军绿色/咖啡 INFO (2011-09-14 10:39:15,625) - 价格:26200 INFO (2011-09-14 10:39:15,625) - 图片:i1/T1liqlXj8oXXXTRSAT_013057.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=12730707166 INFO (2011-09-14 10:39:15,625) - 名称:水墨佳人女装2011秋装秋款新款新品加厚长袖瑞丽短外套 INFO (2011-09-14 10:39:15,625) - 价格:26200 INFO (2011-09-14 10:39:15,625) - 图片:i1/T1sTV_XadqXXcClX36_060517.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=12915156606 INFO (2011-09-14 10:39:15,625) - 名称:ViVi杂志款 Asuka Yuri秀粗麻女装秋冬短外套 INFO (2011-09-14 10:39:15,625) - 价格:17900 INFO (2011-09-14 10:39:15,625) - 图片:i2/T1e2hOXddzXXbw55cZ_032608.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=7761546704 INFO (2011-09-14 10:39:15,625) - 名称:2011秋季新款女装羊毛呢妈妈装 宽松版中老年短外套翻领绿色 INFO (2011-09-14 10:39:15,625) - 价格:22900 INFO (2011-09-14 10:39:15,625) - 图片:i3/T1ZB40XopXXXckB9E3_051216.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=9290407443 INFO (2011-09-14 10:39:15,625) - 名称:2011韩版秋冬女装新品 洋气 调皮可爱中长款双排扣风衣 外套 INFO (2011-09-14 10:39:15,625) - 价格:8800 INFO (2011-09-14 10:39:15,625) - 图片:i7/T1KpuaXm4sXXXmcEQZ_033735.jpg INFO (2011-09-14 10:39:15,625) - 网址:http://item.taobao.com/item.htm?id=13145728284 INFO (2011-09-14 10:39:15,625) - 名称:新款韩版女装风衣外套 修身长袖女士风衣 翻领带拉链风衣外套 INFO (2011-09-14 10:39:15,640) - 价格:15900 INFO (2011-09-14 10:39:15,640) - 图片:i4/T1SPqkXmJjXXcjLEk8_072117.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=12812355549 INFO (2011-09-14 10:39:15,640) - 名称:2011秋装新款女装军绿色工装休闲外套春秋韩版修身女士风衣 INFO (2011-09-14 10:39:15,640) - 价格:19800 INFO (2011-09-14 10:39:15,640) - 图片:i1/T17smlXb0FXXc.0vwZ_031951.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=13031860478 INFO (2011-09-14 10:39:15,640) - 名称:2011春秋装新品 韩版女装风衣外套 长款修身风衣 女士外套大衣 INFO (2011-09-14 10:39:15,640) - 价格:15900 INFO (2011-09-14 10:39:15,640) - 图片:i4/T1WOp.Xh8HXXasdJIZ_032024.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=13031892105 INFO (2011-09-14 10:39:15,640) - 名称:专柜正品女装2011新款春装韩版时尚假俩件带帽风衣 INFO (2011-09-14 10:39:15,640) - 价格:26200 INFO (2011-09-14 10:39:15,640) - 图片:i7/T1zjNYXgtkXXbyJ9g7_065620.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=9100442835 INFO (2011-09-14 10:39:15,640) - 名称:特价 风衣 女 2011新款秋装韩版大码女装时尚热卖修身风衣 INFO (2011-09-14 10:39:15,640) - 价格:13600 INFO (2011-09-14 10:39:15,640) - 图片:i4/T1y6ajXktkXXXw6vM8_070426.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=12525276117 INFO (2011-09-14 10:39:15,640) - 名称:枫之玲 2011秋装新款 修身 时尚 长袖女装风衣 INFO (2011-09-14 10:39:15,640) - 价格:20000 INFO (2011-09-14 10:39:15,640) - 图片:i8/T10d05XodEXXX8fYo4_052120.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=13145948058 INFO (2011-09-14 10:39:15,640) - 名称:以诺 2011秋装 新款 女士 女装 长款 修身 风衣 INFO (2011-09-14 10:39:15,640) - 价格:17800 INFO (2011-09-14 10:39:15,640) - 图片:i1/T1Tmx7XjhEXXbLx7w._113135.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=12637146864 INFO (2011-09-14 10:39:15,640) - 名称:2011夏装新品欧美女装单件套圆领短袖蝙蝠袖 全棉针织衫 INFO (2011-09-14 10:39:15,640) - 价格:3990 INFO (2011-09-14 10:39:15,640) - 图片:i2/T1feX4XjpkXXaI_Fjb_122628.jpg INFO (2011-09-14 10:39:15,640) - 网址:http://item.taobao.com/item.htm?id=9674621798
这里只是简单的打印出来,有兴趣的可以弄个web,将结果显示出来。
好了,已经初步构建好一个最简单的购物搜索擎了,由于个人水平原因,可能代码写的有点……,但不管怎么说,是一个开始,接下来会慢慢完善的。
源代码下载
程序运行所需文件与搜集到的内容
相关文章推荐
- 构建自己的购物搜索引擎
- scons构建自己的一个简单的程序
- 自己写得一个分布式海量文件搜索引擎
- 利用Roslyn构建一个简单的C#交互脚本引擎
- 利用nutch-1.2和Lucene 搭建自己的搜索平台, Apache Mahout 构建社会化推荐引擎
- lucene构建restful风格的简单搜索引擎服务
- 构建自己的代码库及软件开发不能是加工作坊--及一个简单的Linux C程序开发框架—linux-dev-framework
- lucene5.3.1+IKAnalyer 构建简单搜索引擎
- 自己写一个简单的模版引擎 推荐
- lucene构建restful风格的简单搜索引擎服务
- lucene5.3.1+IKAnalyer 构建简单搜索引擎
- lucene构建restful风格的简单搜索引擎服务
- 构建一个简单的物理引擎
- 一个模拟搜索自己主动补全的实例(超简单)
- 全文检索技术 lucene(二) 自己动手写一个搜索引擎
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(1)
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约的名称与命名空间
- 一起用HTML5 canvas做一个简单又骚气的粒子引擎
- 为自己建立一个简单的日志文件