SRU

Table of Contents


1.アクセスURL

http://kn.ndl.go.jp/api/sru

2.リクエストURL

リクエストURLは、アクセスURLに以下の様に検索条件を付加した形式となります。
http://kn.ndl.go.jp/api/sru?[引数]=[値]
引数を複数使用する場合は&で連結します。
http://kn.ndl.go.jp/api/opensearch?[引数1]=[値]&[引数2]=[値]&...

3.引数

ひなぎくでは、以下の引数に対応しています。 (省略可能な引数については、[]内に省略した場合に適応されるデフォルトの値を記載しています。)

operation
必須。"searchRetrieve"のみサポートしています。
version
SRUのバージョンを指定します。1.1または1.2をサポートしています。 バージョン1.1と1.2では、検索結果のソート条件の与え方に違いがあります。 [1.2]
query
必須。CQL形式による検索クエリを記述します。 詳細は「4.検索クエリー(CQL)」を参照してください。
startRecord
検索結果の開始順位を1~1000の範囲で指定できます。[1]
maximumRecords
返却される検索結果レコードの数を1~200の範囲で指定できます。[200]
recordPacking
検索結果に含まれる各レコードを、整形式のXMLで受け取りたい場合は"xml"を、<,>,&などをエスケープした文字列として受け取りたい場合は"string"を指定してください。 [string]
recordSchema
返却される検索結果レコードを記述する、メタデータスキーマを選択できます。 Simple DC形式での出力には"dc"を、NDL大震災アーカイブ独自形式での出力には"ndlkn"を、それぞれ指定してください。 [dc]
sortKeys
検索結果のソート条件を指定できます。versionに1.1を指定した場合のみ使用可能となります。
path
ソートに用いる資料の属性を指定できます。 "score"(検索クエリへの適応度)、"title"(資料のタイトル)、"creator"(著者・撮影者など)、"publisher"(出版者・公開者など)、"date"(撮影日・公開日など)のいずれかから一つを指定してください。 [score]
ascending
ソート結果を降順で出力するか、昇順で出力するかを選択できます。"0"を指定した場合は降順、"1"を指定した場合は昇順で出力されます。 ただし、pathに"score"を指定した場合は、0のみを指定可能です。[0]

4.検索クエリー(CQL)

4.1.クエリーの形式

query=[検索式]
検索式が複数ある場合は、△and△で連結する(△は半角スペース)。
query=[検索式1]△and△[検索式2]・・・
但し、以下の場合は除く。
  • sortByと他の参照名を連結する場合
  • △で連結する。
  • 同一検索クエリ内で複数使用できる参照名を連結する場合 △and△だけでなく、△or△でも連結できる。

※リクエストURLは、[引数]=[値]の部分は、上記のクエリーの形式となりますので、以下の様になります。
引数がqueryのみの場合 http://kn.ndl.go.jp/api/sru?query=[検索式]
http://kn.ndl.go.jp/api/sru?query=[検索式1]△and△[検索式2]・・・
query以外の引数が含まれる場合
http://kn.ndl.go.jp/api/opensearch?[引数1]=[値]&[引数2]=[値]・・・&query=[検索式]
http://kn.ndl.go.jp/api/opensearch?[引数1]=[値]&[引数2]=[値]・・・&query=[検索式1]△and△[検索式2]・・・

4.2.指定できるCQL項目

参照名 内容 検索式
titleタイトル。4.4、4.5参照
creator著者、撮影者など。4.4、4.5参照
publisher出版者、公開者など。4.4、4.5参照
subject主題・分類4.4、4.5参照
place場所。4.4、4.5参照
from日付での絞込み検索を行う際の、開始日。YYYY-MM-DD 形式で指定。
YYYYあるいはYYYY-MM 形式でも指定可能。
その場合、YYYY は YYYY-01-01、YYYY-MM は YYYY-MM-01 を指定したとみなされる。
from=[値]
until日付での絞込み検索を行う際の、終了日。YYYY-MM-DD 形式で指定。
YYYYあるいはYYYY-MM 形式でも指定は可能。
その場合、YYYY は YYYY-01-01、YYYY-MM は YYYY-MM-01 を指定したとみなされる。
until=[値]
anywhere簡易検索と同等。4.5参照
identifier識別子。震災IDを指定。
震災IDは、詳細画面のURL:http://kn.ndl.gojp/xxxxのxxxxの部分。
identifier=[値]
mediatype資料種別。値により資料種別を指定。
指定できる値は、01・・・文書資料, 02・・・Webサイト, 03・・・写真, 04・・・音声・動画, 99・・・その他
mediatype=[値]
dpid検索対象データベース。リポジトリIDを指定。dpid=[値]
language言語。ISO639-2形式で指定language=[値]
openAccess"1"を指定した場合、「Web閲覧可」のデータのみ返却します。openAccess=[値]
sortByソートに用いる参照名を指定。
使用できる参照名は"title","creator","publisher","date","score"のいずれか1つ。
並び順条件は、昇順・・・sort.ascending、降順・・・sort.descending
sortBy△[ソート基準となる参照名]/[並び順条件]

4.3.各CQL項目の検索条件

参照名 一致条件(^,exact) 複数値指定 複数回指定
title
creator
publisher
place
subject
from×(下限値指定)××
until×(上限値指定)××
anywhere× (部分一致)
identifier× (完全一致)××
mediatype× (完全一致)×
dpid× (完全一致)×
language× (完全一致)×
openAccess× (完全一致)×
sortBy---

4.4.検索一致条件の指定

参照名 "title","creator","publisher","place","subject" の項目は、4.3に示す通り
前方一致(^)、部分一致、完全一致(exact)のいずれかの一致条件を指定できる。
指定しない場合は部分一致とみなされる。

検索式の記述方法は、以下のとおり。
前方一致 : [参照名]=^[値]  例:title=^津波
部分一致 : [参照名]=[値]  例:title=津波
完全一致 : [参照名]△exact△[値](△は半角スペース、以下同じ)  例:title exact 津波

4.5.複数値の指定方法

検索クエリー内で、参照名に対し値を複数指定したい場合、以下のいずれかの方法を用います。
  • 同一参照値内での複数値指定
  • 上表の【複数値指定】の値が「○」のもののみ可能
  • 同一検索クエリ内での参照名複数回指定
  • 上表の【複数回指定】の値が「○」のもののみ可能

4.5.1.複数値指定

参照名 "title","creator","publisher","place","subject","anywhere"の項目は、参照名を繰り返すことなく、検索条件として複数の値を指定できます。
値間の論理条件としてand又はorを選択でき、対応する演算子としてallとanyを用います。

検索式の記述方法は

and : [参照名]△all "[値] △[値]"例:title all "津波 地震"
or : [参照名]△any "[値] △[値]" 例:title or "津波 地震"

4.5.2.複数回指定

参照名 "title","creator","publisher","place","subject","anywhere"に加え、
"mediatype", "dpid", "language", "openAccess"
については、同一検索クエリ内で参照名を複数回使用できます。
また、参照名同士の連結は、△and△だけでなく、△or△も使用できる。
例1:title=津波 or title=地震
例2:title=津波 or creator=山田
例3:title=津波 or title=地震 and from=2011-03-11 and until=2011-03-30 sortBy title/sort.ascending

4.6.検索条件の複数指定

複数の検索一致条件を同時に用いたり、検索一致条件と参複数値指定を同時に行う場合などは、参照名を複数回指定することで検索クエリーを作成します。
(例)行頭に「津波」という文字列があるタイトル、又は、タイトルに「火山」の文字列が含まれる場合
title=^津波 or title=火山
(例)行頭に「津波」という文字列があるタイトルで、なおかつ、タイトルに「火山」又は「地震」の文字列が含まれる場合
title=^津波 and title any "火山 地震"

5.データ返却形式

version
SRUのバージョン。"1.1"または"1.2"のうち、リクエスト時に指定した値が返却されます。
numberOfRecords
検索結果総件数。
records
検索結果レコードリスト
record
検索結果レコード。
recordSchema
レコードのXMLスキーマ。
recordPacking
"xml"または"string"のうち、リクエスト時に指定した値が返却されます。
recordData
レコードの書誌情報。
recordPosition
レコードの検索結果における順位。
nextRecordPosition
次のレコードの開始順位。例: startRecord=1, maximumRecords=200とした場合に、検索結果が201件以上あると nextRecordPosition=201として返却される。
deagnostics
エラーメッセージリスト
extraResponseData
ファセット等の、付加的な情報

6.リクエスト例

SRUへのリクエストの例として、タイトルに「図書館」と「仙台」を含むレコードを、タイトルの昇順で2件出力させてみます。「タイトルに「図書館」と「仙台」を含むレコードのタイトルの昇順での出力」を表すCQLは

title=図書館 and title=仙台 sortBy title/sort.ascending

となります。 上記のCQLをURLエンコードし、maximumRecordsの値に"2"を指定した以下のURL
http://kn.ndl.go.jp/api/sru?
operation=searchRetrieve&version=1.2&startRecord=1&maximumRecords=2&recordPacking=xml&recordSchema=ndlkn&
query=title%3D%E5%9B%B3%E6%9B%B8%E9%A4%A8+and+title%3D%E4%BB%99%E5%8F%B0+sortBy+title%2Fsort.ascending
にアクセスすると、目的のレコードを得ることができます。

国立国会図書館東日本大震災アーカイブについて

最新のお知らせ



Copyright © 2013- National Diet Library. All Rights Reserved.