2006-11-22

內嵌搜尋引擎來做 Blog 的全文搜尋 (Blog Search)

之前補充過,因為拿掉 NavBar,又希望使用 Blogger 內建的全文搜尋功能,所以補了一個 Search Engine 在 SideBar 上面,不過實際使用上,對最新的文章好像不夠快、UTF-8 中文好像也有點問題。於是找了一下,匯總了幾個能夠內嵌 HTML 的搜尋引擎語法,能夠針對個人的 Blog 提供全文搜尋功能。

第一個,當然是萬能的 Google 大神,利用 Google 的 Site Search 內嵌語法做修改,直接更改紅色的網址參數,就可以訂製自己的 Google Site Search:(CSS style 請依照自己的樣式去自訂)

<form method="get" action="http://www.google.com/search">
<input type="text" name="q" size="32" maxlength="255" value="">
<input type="hidden" name="sitesearch" value="abintech.blogspot.com">
<input type="submit" name="btnG" value="Google search">
</form>

第二個,是用微軟的新服務:Windows Live Search,用 MSN (Live Passport) 帳號登入後可以試用,建立自己的搜尋巨集,方法請參閱我的另一篇文章。當有了屬於自己的搜尋巨集,找出自己巨集的名稱,利用下面的程式碼,把紅色的部分改成你自己巨集的名稱:

<form id="searchFrm" class="searchform" action="http://beta.search.live.com/results.aspx" method="get">
<input type="hidden" name="q1" value="macro:abinlee.livespace" />
<input TYPE=text id="q" name="q" size="15" name="s" maxlength="255"/>
<input type=submit name="go" value="Live Search">
</form>

原則上以上兩種,都是利用現成的搜尋引擎,將搜尋範圍縮小到特定的網站或網址,以達到特定 Blog 的全文搜尋目的。如果 Blog 的通告不靈或是那些引擎沒有到該網站去"拜訪",那麼最新的 Blog 文章可能還是找不到。很多人愛用的是專業的 Blog Search Service: Technorati,申請註冊後可以替 Blog 打造一個專用、支援 UTF-8 中文的 Blog 專用搜尋引擎,並且提供一些相關統計資料。註冊登記後它針對 Blog 有提供一段 Javascript 的程式碼供人嵌入使用,問題來了,沒錯,你可以直接貼進 HTML/Javascript 的 Page Element 裡面,不過,如果不喜歡那個樣式,想打造自己嵌入式的引擎,那又要自己偷程式碼了。我直接看在 Technorati 管理介面裡 Blog Search 原始碼抓出來的,一樣只要改紅色的地方就好:

<form method="get" action="http://technorati.com/search.php">
<input type="hidden" name="sub" value="searchlet" />
<input maxlength="255" value="" name="s" type="text"/>
<input value="http://abintech.blogspot.com" name="from" type="hidden"/>
<input type="submit" value="Technorati Search" />
</form>

就搜尋的能力來講,我覺得 Technorati 的最快、功能最完整,可能是因為它並不是去「茫茫網海」裡去找,而是只搜尋那些 Blog 的 Feed,範圍就小了很多。當然,感覺好像有上面那段程式碼就不用註冊、直接偷用 Technorati 的引擎不就好了?不過實際上,還是建議先去註冊,因為註冊完可以登錄自己 Blog 的資訊進去,除了 Technorati 會去找登記過的 Blog 來縮小範圍外,它自己的通告系統也可以增加 Blog 的曝光度,搭配上面另外兩種現成搜尋引擎使用,可以讓 Blog 的靜態網頁和資料更容易被找到,網站全文搜尋也能夠更完整。如果拿上面的程式碼塞入你的網頁(或是測試),搜尋中文關鍵字發現找不大到,請確認網頁語系,我是都用 UTF-8,中文才不會有問題。

參考文章:
搜尋個人 Blog 的文章
Technorati 站內搜尋器教學(UTF-8)
Technorati 部落格裡的「google」─ 申請及使用教學

回應: 11

匿名 提到...

您好,看完您的文章,
我決定使用辜狗來做我的blog search
但我放上程式碼後,收尋完卻無法呈現像使用您右下角的辜狗收尋後的結果
能麻煩您指導一下嗎 ?

Abin 提到...

我自己就是用文章裡的那段程式碼喔!
您指的是搜尋完的結果,和我的結果不同,是指搜尋不到內容嗎?
如果是這樣,那不是你的問題喔,因為搜尋結果端看 Google 的機器人有沒有到你的網站過,把資料抓到它的搜尋資料庫裡,如果你的網站剛建好、曝光率不夠,或是文章剛發表,Google 是「一定」找不到的喔(這也是為什麼,我左下角放了三個搜尋介面的原因)。

Teso 提到...

你好,我想請教你問題。
我按照你的方式貼進去,可是他說
(我們無法剖析您的範本,因為它的結構不完整。 請確定所有的 XML 元素均已正確關閉。
XML 錯誤訊息: The markup in the document following the root element must be well-formed.)
我不知道問題是出在哪裡,請指教!

Abin 提到...

這篇文章提到的辦法,是在 Sidebar (側邊欄) 透過新增網頁元素 (Element),加入 HTML/JavaScript 的模組使用的程式碼。
你的錯誤訊息,是修改 HTML「範本」,存檔時發生的吧!是不是程式貼錯地方了啊?

Terry 提到...

請教一下,我新的blogger才開了2-3週,文章也不多,昨天才去申請了Google自訂搜尋與technoroti站內搜尋,過了十幾小時還是搜不到內容是正常的嗎?都很懷疑是不是有錯誤?因為我都很小心的照步驟來申請,深怕一踏錯很麻煩。

Abin 提到...

過了十幾小時還是搜不到內容是正常的,有的過幾天都不一定會搜尋得到。
能不能被找到和時間沒有太大的關係,要看這些提供搜尋的服務「什麼時候」會拜訪你的網站。像是網站剛建立,除非內容很受歡迎,不然搜尋服務大多不會理你,這樣你等再久都搜尋不到。
你要做的是增加文章的曝光率,除了在內容做加強,透過引用、宣傳,還有文章的標籤分類也很重要,只要你的文章越多人看,這些搜尋服務拜訪你網站的機率才會增加,這樣也才有機會在搜尋引擎上看到自己的內容。
只是註冊,寫好文章放在那邊,是沒有太大作用的。多寫些文章吸引大家來看,時間一久這些服務才會常常來拜訪你。

Terry Lee 提到...

恩~我會努力的
我發現GOOGLE的拜訪的比較快
至於T服務就...等我耕耘看看
不然T的介面是比較好看拉又清楚

flower 提到...

Hello, Abin,

又來請教你,
我用了你的搜尋語法,但搜尋出來的結果會跳到google的頁面,
不會像你的一樣,會出現在你的頁面裡,
請問,我應該修改那裡呢?

Abin 提到...

To flower:
你說的那個「搜尋出來的結果會出現在頁面裡」的搜尋,並不是本文 Hack 提到的辦法,本文的辦法都是外掛其他的搜尋引擎,當然是會跳到別的頁面。請仔細看本文的第一段我有寫到,我之前就有用「Blogger 內建的全文檢索」,如果你要的效果是那樣,請用那篇文章的修改辦法。

flower 提到...

謝謝!!己經成功了!!...^^

ZhiWei 提到...

你好^^
搜索之後
出來的選項超級多耶

害我有點傻眼
能做到讓google搜索只去搜索文章內文嗎 :)
而不是整個網站的資訊...

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!