接鵬飛
(鹽城市圖書(shū)館,江蘇 鹽城 224005)
在信息技術(shù)高速發(fā)展的今天,隨著現(xiàn)代圖書(shū)館逐步由傳統(tǒng)型向數(shù)字化、智能化方向轉(zhuǎn)變,圖書(shū)館的服務(wù)模式也呈現(xiàn)出越來(lái)越多樣化的態(tài)勢(shì),一個(gè)顯著的特點(diǎn)就是OPAC的應(yīng)用與興起。OPAC全稱(chēng)Online Public Access Catalogue,在圖書(shū)館學(xué)上被稱(chēng)作“聯(lián)機(jī)公共目錄查詢(xún)”,是圖書(shū)館用戶(hù)查詢(xún)與瀏覽館藏資源最重要的平臺(tái)與窗口[1]。它與圖書(shū)館的門(mén)戶(hù)網(wǎng)站及其他網(wǎng)絡(luò)服務(wù)平臺(tái)一樣,是實(shí)體圖書(shū)館服務(wù)領(lǐng)域在網(wǎng)絡(luò)環(huán)境下的拓展和延伸。
當(dāng)前,經(jīng)濟(jì)和社會(huì)事業(yè)蓬勃發(fā)展,在推動(dòng)圖書(shū)館硬件設(shè)施不斷升級(jí)、館藏資源日益豐富的同時(shí),也對(duì)圖書(shū)館的服務(wù)工作提出了越來(lái)越高的要求。作為圖書(shū)館自動(dòng)化集成系統(tǒng)的重要組成部分,OPAC直接體現(xiàn)了圖書(shū)館在網(wǎng)絡(luò)環(huán)境下對(duì)讀者的服務(wù)能力,其性能的優(yōu)劣直接影響到讀者獲得館藏信息的使用效果,進(jìn)而影響到讀者對(duì)圖書(shū)館資源的利用效果[2]。在讀者輸入檢索關(guān)鍵字的時(shí)候,怎樣才能準(zhǔn)確把握和理解他們的意圖?在浩如煙海的館藏資源中,如何讓讀者能夠快速搜尋到他們想要的信息?這都是圖書(shū)館技術(shù)人員需要認(rèn)真思考并加以解決的問(wèn)題。筆者以鹽城市圖書(shū)館為例,詳述了在匯文OPAC二次開(kāi)發(fā)的過(guò)程中,關(guān)鍵字檢索功能的設(shè)計(jì)原則、思路和實(shí)現(xiàn)流程。
目前,鹽城市圖書(shū)館使用的圖書(shū)管理軟件是江蘇匯文軟件有限公司的LIBSYS,該軟件自1999年起在全國(guó)范圍推廣,到目前為止已被國(guó)內(nèi)近600多家知名高校和公共圖書(shū)館所選用,其中包括教育部公布的39所“985”學(xué)校中的14所,116所“211”學(xué)校中的49所大學(xué)[3]。就江蘇省而言,使用LIBSYS管理系統(tǒng)的地級(jí)市以上公共圖書(shū)館,除鹽城市圖書(shū)館之外還有金陵圖書(shū)館、無(wú)錫市圖書(shū)館等其他5家圖書(shū)館[4]。筆者通過(guò)對(duì)上述5家圖書(shū)館的訪(fǎng)問(wèn),并隨機(jī)抽查了南京審計(jì)學(xué)院、浙江師范大學(xué)、北京科技大學(xué)[4]等10家匯文高校圖書(shū)館用戶(hù),發(fā)現(xiàn)它們均在使用匯文自帶的OPAC子系統(tǒng)。由此可見(jiàn),匯文OPAC得到了廣泛的運(yùn)用。然而,就筆者的使用體驗(yàn)而言,匯文OPAC也存在著一定的局限性。畢竟,匯文軟件的用戶(hù)是一個(gè)較大的客戶(hù)群,既包括大專(zhuān)院校圖書(shū)館,也包括公共圖書(shū)館,加之每個(gè)用戶(hù)的館藏結(jié)構(gòu)和規(guī)模各異,因此,匯文OPAC在技術(shù)細(xì)節(jié)上不可能做到面面俱到,它僅提供一個(gè)通用的共性O(shè)PAC模板,遵循事先設(shè)定的檢索代碼,得到固定樣式的檢索結(jié)果。因此,這就需要我們根據(jù)本館的館藏特色、結(jié)構(gòu)和規(guī)模,因地制宜,以匯文OPAC v5.0版的現(xiàn)有功能為參考,取長(zhǎng)補(bǔ)短,重新開(kāi)發(fā)本館的OPAC系統(tǒng)。
2.2.1 一般原則
從構(gòu)建方法以及頁(yè)面呈現(xiàn)效果來(lái)看,OPAC與普通網(wǎng)站并無(wú)二致,它們與用戶(hù)的接口都是Web瀏覽器。因此,在開(kāi)發(fā)OPAC的時(shí)候,首先應(yīng)遵循建設(shè)普通網(wǎng)站的基本原則,譬如優(yōu)秀的UI設(shè)計(jì)、合理的布局導(dǎo)航、人性化的交互體驗(yàn)等。
2.2.2 特殊原則
從功能上來(lái)看,OPAC和普通網(wǎng)站有著顯著的不同。在普通網(wǎng)站面前,用戶(hù)是被動(dòng)者,他們無(wú)法控制網(wǎng)站的頁(yè)面顯示,只能被動(dòng)地瀏覽由網(wǎng)站管理人員編輯的文檔內(nèi)容。而在OPAC面前,用戶(hù)是主動(dòng)者,他們?cè)跈z索框中輸入關(guān)鍵字,由服務(wù)器根據(jù)實(shí)際情況返回檢索結(jié)果頁(yè)面。因此,在設(shè)計(jì)OPAC檢索頁(yè)面的時(shí)候,我們應(yīng)該更多地結(jié)合本館特色,充分關(guān)注技術(shù)細(xì)節(jié),力求使用戶(hù)獲得最好的體驗(yàn)。
筆者認(rèn)為,一個(gè)優(yōu)秀的檢索頁(yè)面,應(yīng)該做到以下幾點(diǎn)。
2.3.1 易懂的檢索類(lèi)型
匯文OPAC提供了題名、責(zé)任者等11種檢索類(lèi)型,可謂非常全面。這種設(shè)計(jì)的初衷應(yīng)該是為了向讀者提供更多的檢索選擇,但在實(shí)際工作中存著一個(gè)問(wèn)題——它們?nèi)菀琢钭x者感到困惑。在PL/SQL Developer中輸入以下代碼:
將得到的結(jié)果處理后如表1所示。
表1
由表1可以看出,鹽城市圖書(shū)館讀者只使用了其中的7種檢索類(lèi)型。通過(guò)對(duì)search_content表的分析,我們還可以看出,讀者除了對(duì)“題名”和“責(zé)任者”這兩種檢索類(lèi)型的含義比較清晰之外,對(duì)其余5種類(lèi)型可謂不明所以,表中記錄的關(guān)鍵字明顯與某一種檢索類(lèi)型不相對(duì)應(yīng)。而且,所有讀者都忽略了一個(gè)重要的檢索類(lèi)型,即“題名拼音”,它對(duì)于那些不擅長(zhǎng)中文輸入的讀者,譬如兒童和老人,有著極大的便利。還有一個(gè)“主題詞”類(lèi)型,當(dāng)用戶(hù)并不確定文獻(xiàn)的題名,只是希望查找某一領(lǐng)域文獻(xiàn)的時(shí)候,這一檢索類(lèi)型將變得十分重要,而表1清楚地說(shuō)明,讀者明顯沒(méi)有關(guān)注到這種檢索類(lèi)型。因此,在設(shè)計(jì)OPAC的時(shí)候,添加合適的檢索類(lèi)型,并在檢索頁(yè)上對(duì)它們的含義加以說(shuō)明,尤為重要。
2.3.2 實(shí)時(shí)的檢索提示
目前,所有搜索引擎,以及各大門(mén)戶(hù)網(wǎng)站和電商網(wǎng)站,都提供了檢索提示的功能。當(dāng)我們?cè)跈z索框中輸入漢字或字母的時(shí)候,就會(huì)展開(kāi)一個(gè)下拉列表,上面顯示了以此漢字或字母為開(kāi)頭的熱門(mén)檢索詞,而且隨著輸入詞匯的變化,下拉列表的內(nèi)容也會(huì)相應(yīng)改變。這種功能可以幫助使用者了解預(yù)設(shè)檢索詞可能存在的檢索結(jié)果,避免用戶(hù)輸入錯(cuò)誤的檢索詞,并將用戶(hù)引導(dǎo)到相應(yīng)的關(guān)鍵詞上,從而有效地提升用戶(hù)體驗(yàn)。其原理如下:
①設(shè)定檢索框tkey的初值為空,將下拉列表的innerHTML置空并隱藏;
②在tkey的onkeyup事件中,監(jiān)視tkey的現(xiàn)值,即輸入的關(guān)鍵字;
③如果現(xiàn)值等于初值則返回;如果現(xiàn)值為空則隱藏下拉列表;如果現(xiàn)值不為空且不等于初值,則通過(guò)Ajax將現(xiàn)值以及搜索類(lèi)型、匹配模式以文獻(xiàn)類(lèi)型等參數(shù)發(fā)送至服務(wù)器上的json_search.aspx頁(yè)面,然后將現(xiàn)值賦給初值,以便進(jìn)行再次比較。
④json_search.aspx頁(yè)將根據(jù)相關(guān)參數(shù),輸出一個(gè)字符串,該字串由兩部分組成,即匹配結(jié)果數(shù)目和匹配內(nèi)容。
⑤前端腳本接收到該字串后,先讀取匹配結(jié)果數(shù)目,如果為零,則返回。如果不為零,則先將匹配內(nèi)容中的關(guān)鍵字高亮處理后,將其設(shè)置為下拉列表的innerHTML,然后予以顯示。
⑥重復(fù)上述②至⑤步。
2.3.3 準(zhǔn)確的文獻(xiàn)類(lèi)型
匯文OPAC的檢索頁(yè)上,提供了“所有書(shū)刊”“中文圖書(shū)”“西方圖書(shū)”“中文期刊”及“西文期刊”5種文獻(xiàn)類(lèi)型,這自然存在著一定的局限性。因?yàn)椴煌膱D書(shū)館,其館藏結(jié)構(gòu)和文獻(xiàn)類(lèi)型各不相同。有些圖書(shū)館文獻(xiàn)類(lèi)型眾多,非此5種類(lèi)型所能涵蓋,有些圖書(shū)館文獻(xiàn)類(lèi)型較少,上述5種文獻(xiàn)類(lèi)型中的某些類(lèi)型則又顯得多余。在PL/SQL Developer中輸入以下代碼:
selectdoc_type_code from marc group by doc_type_code
將得到的結(jié)果處理后如表2所示。
表2
從表2中可以看出,目前該館只有3種文獻(xiàn)類(lèi)型,如果讀者試圖搜索西文圖書(shū)或西文期刊,結(jié)果將為零。因此,在設(shè)定檢索文獻(xiàn)類(lèi)型時(shí),應(yīng)采取動(dòng)態(tài)的方法,從數(shù)據(jù)庫(kù)中提取當(dāng)前的所有文獻(xiàn)類(lèi)型。這樣既真實(shí)地反映了館藏文獻(xiàn)類(lèi)型,也避免了讀者去做無(wú)謂的檢索,從而節(jié)約讀者了時(shí)間。
要實(shí)現(xiàn)OPAC的檢索功能,一般需要3個(gè)頁(yè)面,分別為檢索頁(yè)、結(jié)果頁(yè)和詳情頁(yè)。在本館OPAC的開(kāi)發(fā)過(guò)程中,前臺(tái)腳本使用了Jquery框架,后臺(tái)代碼則使用c#實(shí)現(xiàn)。
3.1.1 為了使頁(yè)面整潔美觀,增強(qiáng)讀者的視覺(jué)體驗(yàn),筆者使用腳本和css對(duì)搜索類(lèi)型、匹配模式、文獻(xiàn)類(lèi)型和檢索框進(jìn)行了整合,如圖1所示。
圖1
3.1.2 根據(jù)前文的分析,鹽城市圖書(shū)館的OPAC檢索采用了7種搜索類(lèi)型,即書(shū)籍名稱(chēng)(題名)、題名拼音、主題詞、出版社、作者(責(zé)任者)、ISBN和索書(shū)號(hào)。匹配模式在匯文OPAC的基礎(chǔ)上,增加“完全匹配”。鑒于本館已應(yīng)用了麥達(dá)公司的博云光盤(pán)云系統(tǒng),而且OPAC單獨(dú)構(gòu)建了“期刊導(dǎo)航”頁(yè)面,故在文獻(xiàn)類(lèi)型的設(shè)置上,從動(dòng)態(tài)獲取的文獻(xiàn)類(lèi)型中略去了光盤(pán)和期刊兩種類(lèi)型。
3.1.3 檢索頁(yè)的重點(diǎn)就是檢索框的智能提示。目前,鹽城市圖書(shū)館OPAC對(duì)“題名”“題名拼音”“主題詞”和“出版社”這4種檢索類(lèi)型提供了檢索提示,并且使用了寬幅下拉列表,以容納更多的提示信息,給讀者更多的選擇。它們的前端代碼完全一致,主要區(qū)別在于在后臺(tái)代碼中根據(jù)實(shí)際情況使用匯文數(shù)據(jù)庫(kù)中不同的數(shù)據(jù)表。因代碼較長(zhǎng),故筆者略去了部分代碼,以……代替,并對(duì)其進(jìn)行了備注說(shuō)明。
①前端腳本
②服務(wù)器端部分代碼。
在后臺(tái),根據(jù)前端傳遞過(guò)來(lái)的搜索類(lèi)型、關(guān)鍵字等參數(shù),構(gòu)成sql語(yǔ)句的where子句。對(duì)于“題名”和“題名拼音”,是從marc表中獲取數(shù)據(jù);對(duì)于“主題詞”和“出版社”,一般是從marc_idx表中獲取數(shù)據(jù)。但對(duì)該館來(lái)說(shuō),通過(guò)對(duì)marc_idx表中關(guān)于出版社信息的分析,發(fā)現(xiàn)其中存在著大量無(wú)效信息,因此,筆者改從press表中獲取。
writeRespose(icount.ToString()+"||"+svalue);
點(diǎn)擊檢索按鈕后,向結(jié)果頁(yè)searchresult.aspx傳遞搜索類(lèi)型、關(guān)鍵字、匹配模式、文獻(xiàn)類(lèi)型等參數(shù)。
結(jié)果頁(yè)的實(shí)現(xiàn),在技術(shù)上沒(méi)有什么特別的難點(diǎn)。在本頁(yè)面的設(shè)計(jì)中,筆者借鑒了匯文OPAC結(jié)果頁(yè)的功能,并對(duì)其進(jìn)行了改進(jìn),主要表現(xiàn)在以下三點(diǎn)。
3.2.1 修正了“館藏”列表容易消失的問(wèn)題。在匯文OPAC v5.0版的檢索結(jié)果頁(yè)中,當(dāng)鼠標(biāo)移動(dòng)至“館藏”標(biāo)簽之上時(shí),會(huì)出現(xiàn)一個(gè)關(guān)于該書(shū)籍的館藏列表,上面記錄著關(guān)于該書(shū)的館藏信息,極大地方便了讀者。但問(wèn)題在于,必須保證鼠標(biāo)懸念在“館藏”標(biāo)簽之上,列表才能保持顯示,哪怕用戶(hù)無(wú)意中移動(dòng)了鼠標(biāo),列表也會(huì)立即消失,如果用戶(hù)想對(duì)列表進(jìn)行操作,譬如復(fù)制列表中的內(nèi)容,更是不可能實(shí)現(xiàn)的事,這在一定程度上給用戶(hù)帶來(lái)了不便。這是html結(jié)構(gòu)和css沒(méi)有處理好引發(fā)的小問(wèn)題,很容易就能解決。
3.2.2 對(duì)搜索結(jié)果集進(jìn)行了優(yōu)化。讀者檢索圖書(shū)的目的,是為了尋找可借閱的信息。然而,館藏書(shū)刊的狀態(tài)有很多種,比如“可借”“業(yè)務(wù)用書(shū)”“保留本”等。如果不加選擇地顯示全部信息,顯然不符合讀者檢索的初衷。因此,在檢索結(jié)果頁(yè)中,筆者對(duì)服務(wù)器代碼進(jìn)行了優(yōu)化,使其只顯示允許外借或到館閱覽的圖書(shū),從而更加貼近讀者的需求。
3.2.3 使用了Ajax技術(shù)。在我們輸入檢索關(guān)鍵字并點(diǎn)擊檢索按鈕后,大多數(shù)情況下,會(huì)出現(xiàn)很多頁(yè)的結(jié)果。在未經(jīng)處理的模式下,點(diǎn)擊頁(yè)碼標(biāo)簽,在新頁(yè)面打開(kāi)的時(shí)候會(huì)自然地伴隨一個(gè)刷新的過(guò)程,這也是web應(yīng)用程序不如桌面應(yīng)用程序友好之處。然而,如果我們打開(kāi)網(wǎng)易新聞排行頁(yè)面(http://news.163.com/latest/),就會(huì)發(fā)現(xiàn)它跟普通頁(yè)面有明顯的不同,頁(yè)面轉(zhuǎn)換流暢自然,最主要的原因,就是它使用了Ajax技術(shù)。在WEB系統(tǒng)中引入Ajax技術(shù),將傳統(tǒng)的同步通信方式改變?yōu)楫惒酵ㄐ沤换シ绞?,從而豐富客戶(hù)端的功能,改善了用戶(hù)體驗(yàn),縮短了WEB應(yīng)用程序與桌面應(yīng)用程序之間的差距[5]。鹽城市圖書(shū)館的OPAC,也實(shí)現(xiàn)了與網(wǎng)易新聞排行頁(yè)面類(lèi)似的效果。其實(shí)現(xiàn)代碼與檢索提示的實(shí)現(xiàn)代碼相近,接收的參數(shù)字串一致,這就意味著sql代碼的條件語(yǔ)句一致,區(qū)別就在于以下兩個(gè)方面。
①后臺(tái)sql代碼中select的字段不同,而且均是從marc表中獲取數(shù)據(jù)。因?yàn)轫?yè)面需求稍稍復(fù)雜,故返回的數(shù)據(jù)采用了Json格式。
②前端使用Jquery的getJSON()來(lái)接收并解析數(shù)據(jù)。
最終實(shí)現(xiàn)效果如圖2。
圖2
匯文公司提供給鹽城市圖書(shū)館的OPAC地址為http://opac.yctsg.cn,筆者二次開(kāi)發(fā)后的檢索地址為http://so.yctsg.cn/。新的檢索功能上線(xiàn)后,得到匯文公司技術(shù)人員的肯定,并受到讀者的廣泛好評(píng)。
通過(guò)本次設(shè)計(jì),鹽城市圖書(shū)館的OPAC系統(tǒng)基本功能得到了完善,但是隨著檢索技術(shù)的不斷更新,程序設(shè)計(jì)不可能一次性達(dá)到完美,還需要持續(xù)的摸索與優(yōu)化,并在通用規(guī)則的范圍內(nèi)根據(jù)大多數(shù)讀者的使用習(xí)慣進(jìn)行修改。隨著圖書(shū)館事業(yè)的發(fā)展,服務(wù)的人性化、個(gè)性化拓展,OPAC系統(tǒng)也會(huì)逐漸完善與成熟。此次設(shè)計(jì)成功,不僅提升了讀者的使用體驗(yàn),還讓本館技術(shù)人員得到了學(xué)習(xí)和鍛煉,對(duì)于今后圖書(shū)館的事業(yè)發(fā)展有很大幫助。
[1] 黎邦群.基于數(shù)據(jù)特征的OPAC簡(jiǎn)單檢索及檢索建議[J].圖書(shū)館論壇,2012(1):65-68.
[2] 李田章.基于Mashup模式的OPAC資源整合——以整合豆瓣網(wǎng)圖書(shū)封面為例[J].圖書(shū)館論壇,2011(5):119-121.
[3] 江蘇匯文軟件有限公司官網(wǎng).關(guān)于匯文.[EB/OL].http://www.libsys.com.cn/about.php.
[4] 江蘇匯文軟件有限公司官網(wǎng).用戶(hù)列表.[EB/OL].http://www.libsys.com.cn/userlistmore.php.
[5] 蔣南.基于Ajax技術(shù)的搜索建議功能在圖書(shū)館OPAC中的應(yīng)用[J].新世紀(jì)圖書(shū)館,2009(6):68-71.