參數與回傳格式的完整說明,見 API 文件: search/notes
單一個詞可以不加雙引號, https://cbdata.dila.edu.tw/dev/search/notes?q=法鼓 與 https://cbdata.dila.edu.tw/dev/search/notes?q="法鼓" 的結果相同。
但 AND、OR、NOT、NEAR、Exclude 語法的每個詞都必須用雙引號括起來, 否則整個查詢字串會被當成一個詞。
查詢字串 (q) 長度上限為 40 字,超過會回傳錯誤。
以下範例均要做 URL encode, 例如:
"波羅蜜" | "波羅密"
要編碼為
%22波羅蜜%22%20%7C%20%22波羅密%22
多個字詞都必須出現。將每個詞用雙引號括起來,再以空格隔開多個字詞。
例:https://cbdata.dila.edu.tw/dev/search/notes?q="法鼓" "印順"
例:https://cbdata.dila.edu.tw/dev/search/notes?q="波羅蜜"|"波羅密"
例:https://cbdata.dila.edu.tw/dev/search/notes?q="迦葉" !"迦葉佛"
例:https://cbdata.dila.edu.tw/dev/search/notes?q="阿含" NEAR/5 "迦葉"
上例表示「阿含」跟「迦葉」之間距離不超過5個字。
也可以串接多個 NEAR,例:https://cbdata.dila.edu.tw/dev/search/notes?q="老子" NEAR/7 "道" NEAR/3 "經"
NEAR 查詢不回傳 total_term_hits,只回傳 num_found。
括號分組 (…)、鄰近運算子 ~n、以及 & 運算子都不支援,會在回傳的 error 欄位說明原因。
參考 https://cbdata.dila.edu.tw/dev/static_pages/search_filter
預設依藏經、冊號、行號排序。
start + rows 不得超過 100,000(rows 超過時自動截斷)。 要取回超過 10 萬筆的結果(例如匯出),請改用 cursor 參數分段取回:
例:https://cbdata.dila.edu.tw/dev/search/notes?q=明&rows=10000&cursor=*
cursor 不能與 start 同時使用。兩段之間超過 5 分鐘未取下一段,cursor 會過期,須以 cursor=* 重新開始。 Exclude 查詢的一段可能少於 rows 筆(被排除的條目不回傳),以 next_cursor 是否為 null 判斷結束。 請依序取回,每分鐘的請求數受限流規範(見 API 文件)。
facet=1 回傳藏經、部類、作譯者、朝代、佛典五種 facet。 NEAR 查詢的 hits 與 docs 相同(符合的條目數);Exclude 查詢的 hits 為排除後的出現次數。