`
emeifeng
  • 浏览: 7427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

比较购物搜索之相似关键词的设计与实现——货比百家(huobibaiija.com)

 
阅读更多

这段时间一直忙着货比百家比较购物搜索(huobibaijia.com)的SEO工作,经过网站结构调整、关键词布局和外链建设,百度对网站已经稳定收录,站长工具查询:"百度 在最近1天内 共收录了网站( www.huobibaijia.com 1010 个页面",总收录数量:7万2400。(2011-09-20)

在实现购物搜索应用的时候,时常会遇到,类似淘宝搜索结果页面"你是不是想找:",etao搜索结果页搜索框下"热门搜索"之类的需求,也即根据当前的搜索关键词,查询相类似的关键词。

从seo和网站已有结构考虑,热门关键词用独立的页面展示,URL设计如:http://www.huobibaijia.com/hot-5176/

和http://www.huobibaijia.com/nvxie-50006843/hot-5176/。相似关键词实现效果如:


说下实现细节,首先需要一个关键词库,这个可以统计用户搜索关键词,也可以搜集商城的热门关键词。写了简单的程序,统计了淘宝、淘宝商城的热门关键词10多万个作为关键词库。

 

相似查询,不得不提TF-IDF了。TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。 TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。

 

Lucene也提供了个相似比较的接口,MoreLikeThis接口。废话不说了,直接上代码。

 

热门关键词推荐代码:

	public List<Hotkey> searchMoreLikeThis(String wd, int top)
			throws IOException, Exception {
		MoreLikeThisQuery query = new MoreLikeThisQuery(wd,
				new String[] { "wd" }, analyzerUtil.ikAnalyzer);
		TopDocs topDocs = getSearcher().search(query, top);

		int totalHits = topDocs.totalHits;
		ScoreDoc scoreDocs[] = topDocs.scoreDocs;
		top = top < totalHits ? top : totalHits;

		List<Hotkey> list = new ArrayList<Hotkey>();
		for (int i = 0; i < top; i++) {
			Document doc = getSearcher().doc(scoreDocs[i].doc);
			Hotkey hotkey = doc2Object(doc);
			int freq = taobaoItemSearcher.docFreq(hotkey.getWd());
			//...此处暂时隐蔽^_^

			list.add(doc2Object(doc));
		}
		return list;
	}
 

 

有兴趣的朋友看看网站,提提建议。技术、网站运营、SEO等有兴趣的朋友,多多交流。

网址: http://www.huobibaijia.com/

也可以加QQ:909546261,疑义相与析。

 


  • 大小: 10.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics