典籍檢索
右上方工具欄的「搜尋」頁籤有站內搜尋功能,此功能是調用Google搜尋引擎,可快速找到最相關的頁面,但無法指定精細的檢索條件,較次要的資訊也可能找不到。
若要更精細的檢索,可從典籍列表進入典籍檢索器。操作方式如下:
- 在「檢索範圍」的典籍列表中選擇想搜尋的典籍
- 可按住滑鼠框選,或按住Shift或Ctrl鍵點擊複選。
- 在「檢索範圍」的「關鍵詞」輸入關鍵詞並點擊「篩選」,即可篩選及列出相關的典籍。
- 篩選後可點擊「全選」或「全不選」將列出的典籍加入或取消選取,或按住Ctrl框選將典籍加入選取。(不符合關鍵詞而隱藏的典籍會維持原先的選取狀態,若不按住Ctrl則會在選取新典籍時把原來選取的典籍取消選取)
- 可重覆上述步驟,改變關鍵詞,篩選列出不同典籍,再用「全選」、「全不選」或Ctrl點擊的方式加入或取消選取典籍。
- 清空關鍵詞再按「篩選」,可重新列出所有典籍。
- 在「檢索內容」的欄位輸入檢索條件,並設定適當的檢索單位
- 「關鍵詞」用於指定要在各典籍文本中查詢的文字。
- 「檢索單位」決定檢索的粒度。例如指定的關鍵詞是「含有『桂枝』及『麻黃』」,當檢索單位為「全書」時,程式會把含有「桂枝」及「麻黃」的每本書列出;若檢索單位為「章節」,程式會把每本書於章節標題處分割,並且把含有「桂枝」及「麻黃」的每個章節列出;若檢索單位為「段落」,程式會把每本書於章節標題及各段落處分割,並且把含有「桂枝」及「麻黃」的每個段落列出。若某書第一章有「桂枝」,最後一章有「麻黃」,他處皆無,檢索單位為「全書」時會在此書找到一筆結果,檢索單位為「章節」時則無結果。
- 「比對異體字」勾選時,程式會在搜尋關鍵詞時一併考慮異體字,例如搜尋「脅下」可以找到「脇下」,反之則否。笈成的異體字一般定義為意義可相通的字,以及簡化字及其對應原字,例如檢索「髮」會考慮意義相通的異體字「髪」和簡化字「发」,但不會考慮「發」、「発」等;檢索「发」會考慮「髮」、「髪」、「發」、「発」等。如有特殊需求,可點擊旁邊的選項按鈕更改異體字表。
- 「 略過標點」勾選時,程式會在搜尋關鍵詞時略過標點符號。例如搜尋「發熱、汗出、惡風、脈緩者」可以找到「發熱汗出惡風脈緩者」、「發熱汗出。惡風脈緩者」、「發熱,汗出,惡風,脈緩者」、……等等。預設會略過所有非文字、數字的Unicode字元(有些舊瀏覽器不支援讀取Unicode定義表,此時會採用後備的符號表略過一些常見符號),如有特殊需求,可點擊旁邊的選項按鈕更改標點符號字元的定義。
- 「章節」用於限定章節,例如查詢傷寒論時,將檢索單位設為「段落」,章節設為「太陽病」,則檢索結果只會列出「太陽病」章節以下的段落。此項在檢索單位設為「全書」時沒有作用。
- 「作者」用於限定典籍的作者。典籍可能記錄多名作者、譯者、校者,其中一個符合即視為符合。例如某書的作者記錄為「『佚名』,唐·『王冰』編注,宋·『林億』校正」,則此欄填入「佚名」、「王冰」、或「林億」皆可找到此書。注意:本站典籍的作者資訊以記載姓名為主,用字、號檢索可能會找不到資料,例如取「張機」、「葉桂」而不取「張仲景」、「葉天士」。
- 「年份」用於限定典籍的年代。例如「200/1000」表示公元200年至1000年,「1600/」表示公元1600年以後,「/800」表示公元800年以前。限於考據能力,典籍的年份記錄可能為多個點或區間,只要與其中一個有交集即視為符合。例如某書的年代記錄為「公元1000年至1200年」,則此欄填入「1100」、「900/1100」、「1100/1300」皆可找到此書。對於公元前的年代,「0」表示公元前1年,「-1」表示公元前2年,依此類推。
- 「品質」用於限定典籍的品質,格式是去除「%」的數字或區間。例如「75」表示品質=75%,「50/」表示品質≥50%,「0/80」表示0%≤品質≤80%。品質是本站對典籍電子文本完善程度的大略評價,細節可參見品質標示。
- 按下「開始檢索」,然後靜候程式列出找到的結果
- 每筆檢索結果皆會列出位置及內容摘要,位置包含書名、章節、段落等部分,每部分皆附有連結,點擊即可連入原始頁面,並自動捲動到相應章節或段落開始的位置。
- 此外,從檢索結果連入原始頁面時,會自動為關鍵詞上色,可按Tab鍵向後跳轉或按Shift+Tab向前跳轉。(預設跳轉點會以頁面開頭為計算基準,可先在頁面任一位置點一下以便將該處設為計算基準)
關鍵詞語法說明
檢索內容的「關鍵詞」、「章節」及檢索範圍的關鍵詞,皆可使用以下語法指定較複雜的檢索條件。
- 半形空格或「
AND
」(前後須空白,大小寫不拘)表示「且」。例如「桂枝 麻黃
」、「桂枝 AND 麻黃
」、「桂枝 and 麻黃
」表示含有「桂枝」也含有「麻黃」的檢索單位。 - 「
OR
」(前後須空白,大小寫不拘)表示「或」。例如「桂枝 OR 麻黃
」、「桂枝 or 麻黃
」表示含有「桂枝」或含有「麻黃」的檢索單位。 - 「
-
」(後面不可空白)表示「非」。例如「桂枝 -麻黃
」表示含有「桂枝」且不含「麻黃」的檢索單位。 - 半形括號包住的部分視為群組優先運算。例如「
(桂枝 OR 肉桂) AND (乾薑 OR 生薑)
」表示「含有『桂枝』或『肉桂』,且含有『乾薑』或『生薑』」。 - 半形雙引號包住的文字會脫除特殊意義,引號裡可用連續兩個半形雙引號表示一個雙引號。例如可用「
"Mary and I ""love"" you"
」比對「Mary and I "love" you」(若直接搜尋「Mary and I "love" you
」則會被解讀為「含有『Mary』且含有『I』且含有『love』且含有『you』」)。 - 可用「
<指令>:
」或「-<指令>:
」設定進階的檢索條件。目前支援的指令如下:- 「
syn:
」:本指令後面出現的關鍵詞皆比對異體字;加負號則反之。 - 「
np:
」:本指令後面出現的關鍵詞皆忽略標點符號及空白;加負號則反之。 - 「
re:
」:本指令後面出現的關鍵詞視為正規表示式;加負號則反之。例如「re:"桂枝.{0,20}麻黃|麻黃.{0,20}桂枝"
」表示「桂枝」與「麻黃」相隔20字以內。 - 上述指令的解析只考慮位置,與括號等要素無關。例如「
(syn: 參 OR 耆) 薑 -syn: 朮
」或「syn: (參 OR 耆) 薑 -syn: 朮
」都表示「參」、「耆」、「薑」比對異體字而「朮」不比對異體字。 - 指令後亦可接關鍵詞。注意若帶負號的指令直接接著關鍵詞(未用空白分隔),則只有指令轉為負向,關鍵詞仍為正向,例如「
-syn:干
」表示檢索含有「干」的檢索單位,不比對「干」的異體字。
- 「
補充說明
- 和工具欄一樣,將滑鼠停留在典籍檢索器的各選項上,會顯示提示文字(觸控設備可長按顯示),可善加利用。
- 檢索選項會在每次檢索時記錄在網址參數,可透過瀏覽器歷史快速調出之前做過的檢索。用「⚙️」設定的進階選項值會綁定於目前分頁,開新分頁即會清除,有些瀏覽器可用「複製分頁」功能複製設定值至新開分頁。
- 「進階檢索」的選項可進一步決定檢索時比對的內容,例如勾選「古版」則比對古版文本,不勾選「校」則檢索時會略過校文。尚可用「排除元素」在檢索時去除其他不必要的內容。
- 典籍檢索器的運作方式是將選取的典籍的全文即時下載至瀏覽器,再由瀏覽器逐一分析內容、判斷條件而後輸出,因此檢索效率主要取決於網路速度及瀏覽器和機器的性能,檢索量大時可能佔用大量網路流量及本機資源。可擅用以下技巧提高檢索效率及減少延遲:
- 減少檢索的典籍數量:盡可能用書名篩選縮小要檢索的典籍範圍,減少勾選的數目。
- 檢索全書再「縮小檢索範圍」:若要一次從較多典籍中檢索相關段落,可先把「檢索單位」設為「全書」,列出相關典籍後,點擊「縮小檢索範圍」將檢索範圍限縮至找到的典籍,再把「檢索單位」改為「段落」重新檢索。這是因為檢索單位為「章節」或「段落」時,程式須對所有勾選的典籍做分章、分段,會大幅降低檢索速度(實測約差40倍)。
- 減少結果筆數:指定較詳細的關鍵詞,減少符合的檢索結果。
- 減少顯示的內容:若預期檢索結果筆數極多,可考慮取消勾選「結果呈現」的「展開內容」,如此一來每筆檢索結果在使用者點擊前不會顯示摘要。由於瀏覽器排版渲染內容也會消耗運算資源,這樣做可減少瀏覽器延遲及提高檢索速度。
- 使用運算功能較強的機器(桌機或筆電一般較平板電腦或手機快)及瀏覽器(如Chromium系瀏覽器執行腳本的速度通常較其他瀏覽器快),在速度快的網路環境下使用,使用前關閉其他應用程式並停止大流量的網路傳輸活動。
- 使用正規表示式:有技巧地利用正規表示式,有時可減少不必要的運算,提高效率。例如若要檢索甲或乙,使用正規表示式的「
re:"甲|乙"
」通常會比「甲 OR 乙
」更快,因前者只須掃描整個檢索單位一次,後者可能需要掃描多次。
- 典籍檢索器可透過URL參數進一步客製化。URL參數格式為
#?鍵1=值1&鍵2=值2&...
。可用參數如下:- 「
autorun
」:設定為真值(如1
)時會在載入後自動啟動檢索。 - 「
index
」:設定典籍列表網址。典籍列表為UTF-8編碼的HTML網頁檔(由於瀏覽器安全性限制,須支援CORS才能正常載入),程式會自動擷取「[data-type="booklist"]
」元素下的內容作為典籍列表,格式可參照典籍列表原始碼。本參數可指定多次,可用空值表示預設列表,例如「#?index=&index=https://example.com/mybooklist&index=https://example.com/mybooklist2
」表示依序載入預設列表、https://example.com/mybooklist、https://example.com/mybooklist2。網址可使用data URL,例如「#?index=data:,<title>自訂列表</title><div data-type="booklist"><a href="https://example.com/book1.html">book1</a></div>
」。 - 「
synonym
」:設定異體字列表網址。異體字列表為UTF-8編碼的JSON檔案(由於瀏覽器安全性限制,須支援CORS才能正常載入)。本參數可指定多次,可用空值表示預設列表,例如「#?synonym=https://example.com/synynomlist&synonym=https://example.com/synynomlist2&synonym=
」表示依序載入https://example.com/synynomlist、https://example.com/synynomlist2、預設列表。網址可使用data URL,例如「#?synonym=data:,{"幹":["干"]}
」。 - 「
bsep
」:設定典籍列表的分隔字元。 - 「
sep
」:設定檢索結果的分隔字元。 - 「
thres
」:設定提醒檢索書籍數目過多的臨界值。 - 「
othres
」:設定提醒檢視書籍數目過多的臨界值。 - 「
nopunc
」:設定略過標點字元的正規表示式值。
- 「