部署自己的搜索引擎實現關鍵詞優化(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>
</response>
這時候其實還有一個問題,就是關鍵詞有時候匹配的并不是一個詞。我們知道英文單詞是以空格分開的,但漢語詞匯卻復雜多了,甚至有些句字人閱讀起來都會有歧義。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系統沒有這么 好的功能。即使它能自動搜索創建標簽,那它的標簽的相關度也比不上搜索引擎,因為它不是專做搜索引擎的,它只是為你提供了一些實用的附加的小功能?! ”疚摹啊眮碓矗篽ttp://www.libaolaser.com/keji/design/13568.html,轉載必須保留網址。
編輯: