使用 Sphinx 做全文檢索

例:http://cbdata.dila.edu.tw/v1.2/sphinx?q=法鼓

參數

參數名稱 說明
q 要搜尋的字詞,可以包含組字式。

例如 《新集藏經音義隨函錄(第13卷-第30卷)》卷17:「[幻-ㄠ+糸]術」(CBETA, K35, no. 1257, p. 189b6), 組字式 escape 之後:[幻-ㄠ%2B糸]

查詢 URL: http://cbdata.dila.edu.tw/v1.2/sphinx?q=[幻-ㄠ%2B糸]

puncs

是否包含標點。

預設為 0: 不包含標點。

若設為 1 則包含標點。

start 分頁回傳的起始 offset,預設為 0.
rows 一次回傳幾筆,預設為 20.
order

排序,例如按照文獻成立的年代排序:http://cbdata.dila.edu.tw/v1.2/sphinx?q=法鼓&order=year

也可以指定多個排序欄位,例如先以年代排序、再以經號排序:

http://cbdata.dila.edu.tw/v1.2/sphinx?q=法鼓&order=time_from,time_to,work

但是排序欄位最多五個,而且如果指定了 time_from 或 time_to 會各佔兩個欄位,因為必須以 has_time_from 或 has_time_to 先排序。

每一個排序欄位都可以指定使用升冪排序或降冪排序:

  • 指定升冪排序:order=time_from+
  • 指定降冪排序:order=time_from-

可用做排序的欄位:

  • canon: 藏經 ID,依照 CBETA 制定的檢索順序:T X A K S F C D U P J L G M N ZS I ZW B GA GB
  • category: 部類
  • juan: 卷號
  • vol: 冊號,例如:T01
  • work: 典籍編號,例如:T0001
  • time_from: 典籍成立的起始年代
  • time_to: 典籍成立的結束年代
  • term_hits: 該卷中關鍵字出現的筆數

回傳總資訊

欄位名稱 內容
query_string 正規化之後的搜尋字串。(搜尋字串中的標點會被去除,組字式會轉為 UPA)
num_found 符合條件的卷數
total_term_hits 關鍵詞出現的總次數
results 符合條件的各卷詳細資訊

回傳 hits 中的單筆資訊

欄位名稱 內容
juan 卷號
category 部類,例如「阿含部類」。
canon 藏經 ID,例如「T」。
vol 冊號,例如「T01」。
term_hits 關鍵詞出現的次數。
work 典籍編號,例如「T0026」。
其他 以及其他關於該部典籍的相關資訊,詳見:http://cbdata.dila.edu.tw/v1.2/static_pages/work

回傳範例

{
  "num_found": 2628,
  "total_term_hits": 3860,
  "results": [
    {
      "id": 12298,
      "juan": 1,
      "category": "法華部類",
      "canon": "T",
      "vol": "T09",
      "work": "T0270",
      "term_hits": 31,
      "work": "T0270",
      "category": "法華部",
      "title": "大法鼓經",
      "creators": "求那跋陀羅",
      "file": "T09n0270",
      "juan_start": 1,
      "byline": "劉宋 求那跋陀羅譯",
      "time_dynasty": "劉宋",
      "time_from": 420,
      "time_to": 479
    },
    {
      "id": 12297,
      "juan": 1,
      "category": "法華部類",
      "canon": "T",
      "vol": "T09",
      "work": "T0270",
      "term_hits": 30,
      "work": "T0270",
      "category": "法華部",
      "title": "大法鼓經",
      "creators": "求那跋陀羅",
      "file": "T09n0270",
      "juan_start": 1,
      "byline": "劉宋 求那跋陀羅譯",
      "time_dynasty": "劉宋",
      "time_from": 420,
      "time_to": 479
    },
    {
      "id": 12299,
      "juan": 1,
      "category": "法華部類",
      "canon": "T",
      "vol": "T09",
      "work": "T0270",
      "term_hits": 30,
      "work": "T0270",
      "category": "法華部",
      "title": "大法鼓經",
      "creators": "求那跋陀羅",
      "file": "T09n0270",
      "juan_start": 1,
      "byline": "劉宋 求那跋陀羅譯",
      "time_dynasty": "劉宋",
      "time_from": 420,
      "time_to": 479
    },
    ...
  ]
}