ה-Search API אינו מבוסס IIIF, אלא מבוסס על ה-API של מוצר הגילוי והחיפוש שהספרייה הלאומית משתמשת - Primo מבית חברת Exlibris.
להלן נסקור את מתודת Brief Search, המתודה הפופולארית ביותר ב-API. התיעוד המלא של המתודה נמצא באתר המפתחים של Exlibris.
זהו הקלט למתודת ה-brief search:
http://primo.nli.org.il/PrimoWebServices/xservice/search/brief?institution={institutioncode}&loc=local,scope:({scopename})&query={query}&indx={startindex}&bulkSize={pagesize}&json={true/false}
הגדרת מרחב החיפוש שבו רוצים לחפש.
לדוגמה, ערך ברירת המחדל - "NNL" בשני השדות - יאפשר לכם לחפש במרחב שכולל את מרבית פריטי הספרייה הלאומית.
אבל, אם ברצונכם לחפש רק על מפות, לדוגמה, עליכם לציין NNL ב-institutioncode ו-NNL_MAPS_JER ב-scopename.
שימו לב! אין בהכרח הדבר כי מידע שקיים במרחב חיפוש פרטי (לדוגמה, NNL_MAPS_JER) יהיה כלול במרחב ברירת המחדל.
על כן, במידה ואתם עובדים על אוסף ספציפי, יש להשתמש בפרטי מרחב החיפוש שלו.
בפרסום של כל אוסף בספרייה הלאומית מפורטים גם ערכי ה-institutioncode,scopename הנדרשים כדי להגיע אליו.
הגדרת שאילתא.
שדה זה הינו שדה חוזר, כלומר ניתן לציין אותו מספר פעמים, מה שיגרום להרצת כל אחת מהשאילתות (כל query הוא שאילתא) עם AND ביניהן.
שדה זה מקבל שלישיית ערכים, המופרדת בפסיק:
field,precision_operator,value
קוד השדה עליו רוצים לבצע שאילתא.
ניתן לציין any - כדי לחפש על כל השדות המאונדקסים.
קודי שדות אפשריים לחיפוש:
סוג הקירוב שרוצים לבצע בשאילתא:
הערך אותו מחפשים. לדוגמה, Jerusalem.
ניתן להשתמש ב-operators כאן, לדוגמה: Jerusalem OR Tel Aviv
דוגמה לשימושים רגילים בשאילתות:
query=any,contains,Jerusalem
query=title,contains,Jerusalem OR Tel Aviv
query=title,contains,Jerusalem OR Tel Aviv&query=creator,contains,Ben Gurion OR Sharet
דוגמה לשאילתא של טווח תאריכים (בין 1.1.2017 ל-31.12.2017):
query=dr_s,exact,20170101&query=dr_e,exact,20171231
פרמטרים לדפדוף בתוצאות.
indx - פרמטר שמציין אינדקס הרשומה הראשונה שתחזור. כעקרון מתחילים עם 1.
bulksize - פרמטר שמציין את מספר הרשומות שיחזרו בחיפוש, לדוגמה 50.
כדי לדפדף לדף הבא, נחזור על אותה השאילתא עם indx=51 ו-bulksize=50, כדי לקבל את התוצאה ה-51 עד ה-100.
ה-Search API מוגן בבקרת הצפה על-ידי ה-Firewall שלנו, אנא הימנעו מדפדוף רציף על כל התוצאות.
הגדרת פורמט הפלט:
שדה זה הינו רשות. במידה ולא מציינים אותו, ברירת המחדל היא XML.
ניתן לבצע סינון על השאילתות באמצעות סט המסננים הרלוונטי לאותה השאילתא.
כלומר, התהליך הוא כלהלן:
מבנה הפלט הוא:
בדוגמה זו, ל-3300 פריטים מתוצאות החיפוש יש סיווג של שפה (lang), כאשר 2000 פריטים הם עם סיווג עברית ו-1300 הם עם סיווג צרפתית (יתכן כי לפריט יש סיווג של שתי השפות ואז הוא יכלל בספירה בשני ה-values).
כדי להפעיל מסנן, יש לשרשר הגדרת שאילתא ל-URL באופן הבא (לדוגמה, נבחר בסינון על פריטים בשפה העברית):
query=facet_lang,exact,heb
אלמנט זה מכיל את תוצאות החיפוש.
ב-attribute בשם TOTALHITS תוכלו לראות כמה תוצאות חיפוש חזרו.
בתוך האלמנט יש מערך של DOC המסודרים לפי ranking, אשר כל אחד מהם מכיל פריט אחד.
כדי לשלוף את ה-DOC באמצעות Presentation API, יש לקחת את המזהה שלו (הנקרא DOCID או recordid)
ה-DOCID נמצא בנתיב הבא:
DOC => PrimoNMBib => record => control =>recordid
יש לספק ערך זה בפרמטר identifier ב-Presentation API.
חיפוש פריטים המכילים את הכותרת "ירושלים" בעברית:
אנו מספקים נקודת גישה נוספת למאגרים שלנו - IIIF Collections המקיפים את כל הקישורים ל-Presentation API לפריטים במאגרים שלנו, בחתך אוסף.
לחצו כאן כדי להגיע ל-Root IIIF Collection שלנו.