部署自己的搜索引擎实现关键词优化(3)
时间:2010-03-22 10:48 来源: 作者:
<str name=\"id\">5ed7054bf108454db2b0216fbc006934</str> <str name=\"keywords\">景阳岗 三碗不过岗 小破孩 打虎</str> <date name=\"modified\">2009-08-27T20:46:09Z</date> <int name=\"status\">1</int> <date name=\"timestamp\">2009-08-27T15:59:48.821Z</date> <str name=\"title\">三碗不过岗:小破孩景阳岗打虎记</str> </doc> <doc> <str name=\"categoryId\">a8ea126f3128443fbb2d17e0d5e3c55f</str> <str name=\"categoryName\">小破孩</str> <str name=\"content\">&lt;p&gt;小破孩射下九个太阳之后,遭到了报复,丫丫被乌鸦叼到了月亮上 面,整天哭泣。小破孩十分着急,这下该怎么办呢?现在,你来帮小破孩去拯救丫丫吧,操作小破孩登上月球,看你的 了!&lt;/p&gt;</str> <date name=\"created\">2009-08-04T17:18:44Z</date> <str name=\"description\">小破孩射下九个太阳之后,遭到了报复,丫丫被乌鸦叼到了月亮上面,整天哭泣。小破孩十分着急,这下该怎么办呢?现在,你来帮小破孩去拯救丫丫吧,操作小破孩登上月球,看你的了!</str> <str name=\"id\">4c0cfeb8990c455da88aeaabd864bca8</str> <str name=\"keywords\">小破孩 奔月 小游戏</str> <date name=\"modified\">2009-08-27T16:48:39Z</date> <int name=\"status\">1</int> <date name=\"timestamp\">2009-08-27T15:59:43.021Z</date> <str name=\"title\">小破孩奔月小游戏,嫦娥我来啦!</str> </doc> <!-- 这里限于篇幅略去了其它结果 --> </result> 这时候其实还有一个问题,就是关键词有时候匹配的并不是一个词。我们知道英文单词是以空格分开的,但汉语词汇却复杂多了,甚至有些句字人阅读起来都会有歧义。lucene是外国人的玩艺儿,没有内置的中文分词系统,这样一来你搜中文时,只要有相临的字串匹配,都会命中。这样会造成匹配度的下降,再来不良用 户体验。也许你觉得这没什么,挺好,一个结果不漏。但是你想想,各大搜索引擎都不是白痴,你的结果页匹配度不高,会影响你关键字的权重的吧。 不多说了,请出国人的开源分词系统庖丁解牛(paoding)。sourceforge曾因嫌中国人只索取不贡献而屏蔽掉中国的IP,看到庖丁解牛,作为中 国人我都感到骄傲了。谁说中国人不贡献了?庖丁解牛跟商业中文分词软件相比应该还有差距,但足够我们做关键词优化用了。你需要在solr 的schema.xml 配置文件里加上相关配置,在庖丁的配置文件中也要配好字典路径,这样你的搜索引擎就大功告成了。 下面要做前端的优化设计了。你可以做一些流行关键词的标签放在主页上,这些标签页指向你的搜索结果页面。效果可参考我部署的一个案例:http://www.kaoly.com/t-%E9%BB%84%E9%87%91%E7%9F%BF%E5%B7%A5.html 。说明一下,一些免费CMS系统也有标签功能,甚至也有搜索功能,但其搜索功能是没法跟lucene比的,而其标签更多的是手动或半自动维护,相关度也难 以跟搜索引擎直接去搜相比。你想,如果你的搜索引擎算法好,能更接近大型搜索引擎,那你预先搜出来的结果肯定也是你所有内容中最合大型搜索引擎胃口的。这 道理相信大家都明白。更不要说标签建立的方便性,你发现好的关键词,可以随时加一个标签,简单到只需做个链接就可以了。相信常见的免费CSM系统没有这么 好的功能。即使它能自动搜索创建标签,那它的标签的相关度也比不上搜索引擎,因为它不是专做搜索引擎的,它只是为你提供了一些实用的附加的小功能。 (责任编辑:温州视线老金) |