舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

「讓搜尋模組支援搜尋建議」修訂間的差異

出自 MozTW Wiki

 
(未顯示同一使用者於中間所作的 1 次修訂)
行 1: 行 1:
#REDIRECT [[http://developer.mozilla.org/zh_tw/docs/%E8%AE%93%E6%90%9C%E5%B0%8B%E6%A8%A1%E7%B5%84%E6%94%AF%E6%8F%B4%E6%90%9C%E5%B0%8B%E5%BB%BA%E8%AD%B0]]
+
{{MDC|讓搜尋模組支援搜尋建議}}
 +
 
 +
MozSearch 格式的搜尋模組可以支援搜尋建議,當使用者在搜尋欄中逐字鍵入關鍵詞時,Firefox 2 將依據搜尋模組內指定的 URL 送出查詢並取回結果。
 +
 
 +
取回結果之後,Firefox 將其顯示為一個下拉選單,讓使用者從中挑選搜尋引擎建議的關鍵詞。如果使用者繼續輸入關鍵詞,則會重新取回結果並更新選單。
 +
 
 +
Firefox 2 中內建的 Yahoo! 與 Google 搜尋模組都支援搜尋建議功能。
 +
 
 +
=搜尋模組的工作=
 +
搜尋模組必須額外定義一個 <code>&lt;Url&gt;</code> 元素以便支援搜尋建議功能,此元素之 <code>type</code> 屬性需設定為 <code>"application/x-suggestions+json"</code>。支援搜尋建議功能的模組都會有兩個 <code>&lt;Url&gt;</code> 元素,另一個元素指定主要的 code>text/html</code> 搜尋 URL。
 +
 
 +
舉例來說,Yahoo! 搜尋模組的 <code>&lt;Url&gt;</code> 長得像這樣:
 +
 
 +
<pre>
 +
<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}"/>
 +
</pre>
 +
 
 +
如果使用者在搜尋欄中輸入「fir」,則 Firefox 會將此 URL 的 <code>{searchTerms}</code> 代換為「fir」後送出搜尋:
 +
 
 +
<pre>
 +
<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command=fir"/>
 +
</pre>
 +
 
 +
搜尋回來的結果將構成建議詞清單。
 +
 
 +
製作搜尋模組的方法可以參考[[製作 MozSearch 搜尋模組]]一文。
 +
 
 +
=伺服器端的工作=
 +
搜尋建議功能的重點在伺服端的程式,如果你是網站設計師而想支援搜尋建議功能,則必須實做出依據搜尋字串給予進一步搜尋建議詞彙、並以 [http://www.json.org/ JSON] 格式傳回的功能。
 +
 
 +
當瀏覽器想取回搜尋字串時,會對 <code>&lt;Url&gt;</code> 元素指定的 URL 送出 HTTP GET 要求;此時伺服器則需依據字串決定相關字詞為何,並以 JSON 傳回 2 到 4 個建議字詞,如下:
 +
 
 +
; '''查詢字串'''
 +
: JSON 的第一個元素是原始查詢字串,這樣 Firefox 可以得知傳回值是否與目前查閱的字詞相符。
 +
 
 +
; '''建議字詞列表'''
 +
: 建議字詞的陣列,此陣列需以「[」及「]」括起,例如 <tt>["建議詞 1", "建議詞 2", "建議詞 3", "建議詞 4"]</tt>
 +
 
 +
; '''說明'''
 +
: 此元素為選用,亦為一個陣列,分別針對每個「建議字詞列表」的建議詞設定說明,其中可以是任何搜尋引擎想提供瀏覽器顯示的資訊,例如此建議詞有多少搜尋結果等等。
 +
 
 +
<div class="note">Firefox 2 尚不支援「說明」功能,會忽略此傳回值。</div>
 +
 
 +
; '''查詢網址'''
 +
: 此元素為選用,還是一個陣列,內容是各建議詞的替代網址。打個比方:如果除搜尋結果頁面之外還想直接提供建議詞的地圖連結,那就可以將地圖的網址列在此陣列裡。
 +
 
 +
: 若沒有額外指定此元素,則將依據搜尋模組 XML 中的 <code>&lt;Url&gt;</code> 元素決定查詢網址。
 +
 
 +
<div class="note">Firefox 2 尚不支援「查詢網址」功能,會忽略此傳回值。</div>
 +
 
 +
也就是說,若搜尋詞為「fir」且不傳回說明及查詢網址,則傳回的 JSON 應該是長這樣:
 +
 
 +
["fir", ["firefox", "first choice", "mozilla firefox"]]
 +
 
 +
在此範例中只涵括查詢字串及建議字詞列表兩元素,其他選用的都不列入。
 +
 
 +
雖然建議的字詞想放多少就可以放多少,但由於每次使用者多打一個字都會查詢一次,所以還是有所限度比較穩當。至於怎麼依據使用者的要求提出建議,就全交給你自己決定了。

於 2006年12月10日 (日) 15:56 的最新修訂

本文已經移往 Mozilla 開發者中心,請前往目前網址參考最新資訊。

MozSearch 格式的搜尋模組可以支援搜尋建議,當使用者在搜尋欄中逐字鍵入關鍵詞時,Firefox 2 將依據搜尋模組內指定的 URL 送出查詢並取回結果。

取回結果之後,Firefox 將其顯示為一個下拉選單,讓使用者從中挑選搜尋引擎建議的關鍵詞。如果使用者繼續輸入關鍵詞,則會重新取回結果並更新選單。

Firefox 2 中內建的 Yahoo! 與 Google 搜尋模組都支援搜尋建議功能。

搜尋模組的工作

搜尋模組必須額外定義一個 <Url> 元素以便支援搜尋建議功能,此元素之 type 屬性需設定為 "application/x-suggestions+json"。支援搜尋建議功能的模組都會有兩個 <Url> 元素,另一個元素指定主要的 code>text/html 搜尋 URL。

舉例來說,Yahoo! 搜尋模組的 <Url> 長得像這樣:

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>

如果使用者在搜尋欄中輸入「fir」,則 Firefox 會將此 URL 的 {searchTerms} 代換為「fir」後送出搜尋:

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>

搜尋回來的結果將構成建議詞清單。

製作搜尋模組的方法可以參考製作 MozSearch 搜尋模組一文。

伺服器端的工作

搜尋建議功能的重點在伺服端的程式,如果你是網站設計師而想支援搜尋建議功能,則必須實做出依據搜尋字串給予進一步搜尋建議詞彙、並以 JSON 格式傳回的功能。

當瀏覽器想取回搜尋字串時,會對 <Url> 元素指定的 URL 送出 HTTP GET 要求;此時伺服器則需依據字串決定相關字詞為何,並以 JSON 傳回 2 到 4 個建議字詞,如下:

查詢字串
JSON 的第一個元素是原始查詢字串,這樣 Firefox 可以得知傳回值是否與目前查閱的字詞相符。
建議字詞列表
建議字詞的陣列,此陣列需以「[」及「]」括起,例如 ["建議詞 1", "建議詞 2", "建議詞 3", "建議詞 4"]
說明
此元素為選用,亦為一個陣列,分別針對每個「建議字詞列表」的建議詞設定說明,其中可以是任何搜尋引擎想提供瀏覽器顯示的資訊,例如此建議詞有多少搜尋結果等等。
Firefox 2 尚不支援「說明」功能,會忽略此傳回值。
查詢網址
此元素為選用,還是一個陣列,內容是各建議詞的替代網址。打個比方:如果除搜尋結果頁面之外還想直接提供建議詞的地圖連結,那就可以將地圖的網址列在此陣列裡。
若沒有額外指定此元素,則將依據搜尋模組 XML 中的 <Url> 元素決定查詢網址。
Firefox 2 尚不支援「查詢網址」功能,會忽略此傳回值。

也就是說,若搜尋詞為「fir」且不傳回說明及查詢網址,則傳回的 JSON 應該是長這樣:

["fir", ["firefox", "first choice", "mozilla firefox"]]

在此範例中只涵括查詢字串及建議字詞列表兩元素,其他選用的都不列入。

雖然建議的字詞想放多少就可以放多少,但由於每次使用者多打一個字都會查詢一次,所以還是有所限度比較穩當。至於怎麼依據使用者的要求提出建議,就全交給你自己決定了。

個人工具