{"openapi":"3.1.0","info":{"title":"雲居の文庫 検索 API","version":"1.0.0","description":"雲居の文庫（くもゐのふみぐら）の全文検索と和歌の検索。GET だけで、登録や鍵は要らない。どの送り元からも呼べる（CORS）。送り元ごとに、全文検索・和歌それぞれ 1 分 60 回まで。検索語は 50 字まで。旧字と新字、カタカナとひらがな、踊り字、変体仮名はそろえてから照らす。本文と訳は CC0 1.0（α公開版）。本文の多くは OCR から起こしたもので、誤りを含む。説明は https://informanellica.com/kumoi-no-fumigura/api.html","license":{"name":"CC0 1.0（本文・訳）","url":"https://creativecommons.org/publicdomain/zero/1.0/deed.ja"}},"servers":[{"url":"https://informanellica.com/kumoi-no-fumigura"}],"paths":{"/api/search":{"get":{"operationId":"searchTexts","summary":"全文検索","description":"作品の本文（散文の段落と作中歌）と訳から探し、作品ごとにまとめて返す。1 回に 30 作品まで、1 作品で 20 か所まで。","parameters":[{"name":"q","in":"query","required":true,"description":"探す言葉（50 字まで）","schema":{"type":"string","maxLength":50},"example":"月影"},{"name":"w","in":"query","description":"作品 ID で絞る（例: kt-kokin）","schema":{"type":"string"}},{"name":"cat","in":"query","description":"分類で絞る（例: 物語・日記・歌合）","schema":{"type":"string"}},{"name":"q2","in":"query","description":"一緒に出る言葉","schema":{"type":"string","maxLength":50}},{"name":"near","in":"query","description":"q2 との近さ（字数。0 は同じ段落のどこか）","schema":{"type":"integer","minimum":0,"maximum":100,"default":0}},{"$ref":"#/components/parameters/yakuOff"},{"$ref":"#/components/parameters/fuzzy"},{"$ref":"#/components/parameters/conj"},{"$ref":"#/components/parameters/modern"},{"name":"lemma","in":"query","required":false,"schema":{"type":"string"},"description":"語彙素を 1 つに決める（例: 思う）。平安〜室町の散文の形態素解析の索引で探す。conj=0 のときは効かない"},{"name":"pos","in":"query","required":false,"schema":{"type":"string"},"description":"品詞で絞る（前方一致。例: 動詞）"},{"name":"cf","in":"query","required":false,"schema":{"type":"string"},"description":"活用形で絞る（前方一致。例: 連体形）"},{"name":"offset","in":"query","description":"何作品目から返すか","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"当たった作品","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/NotReady"}}}},"/api/uta":{"get":{"operationId":"searchUta","summary":"和歌を探す","description":"勅撰集・私家集・歌合と、作品の中の歌から、1 首ずつ返す。並びは 原文 → 読み → あいまい → 訳 の順。","parameters":[{"name":"q","in":"query","description":"探す言葉（50 字まで）。mode=no のときは番号（12 や 1-20）","schema":{"type":"string","maxLength":50},"example":"春霞"},{"name":"mode","in":"query","description":"part は部分一致、head は歌の頭から、no は作品ごとの通し番号","schema":{"type":"string","enum":["part","head","no"],"default":"part"}},{"name":"w","in":"query","description":"集・作品の ID で絞る（例: kt-kokin）","schema":{"type":"string"}},{"name":"cat","in":"query","description":"分類で絞る（例: 勅撰集・私家集・歌合）","schema":{"type":"string"}},{"name":"au","in":"query","description":"作者で絞る","schema":{"type":"string","maxLength":50}},{"name":"q2","in":"query","description":"一緒に出る言葉","schema":{"type":"string","maxLength":50}},{"name":"near","in":"query","description":"q2 との近さ（字数。0 は同じ欄のどこか）","schema":{"type":"integer","minimum":0,"maximum":100,"default":0}},{"name":"yaku","in":"query","description":"1 で訳も返す","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"$ref":"#/components/parameters/fuzzy"},{"$ref":"#/components/parameters/conj"},{"$ref":"#/components/parameters/modern"},{"name":"offset","in":"query","description":"何首目から返すか","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"何首返すか","schema":{"type":"integer","minimum":1,"maximum":500,"default":200}},{"name":"format","in":"query","description":"csv で、当たった全首を CSV（BOM 付き UTF-8。5 万首まで）で返す","schema":{"type":"string","enum":["json","csv"],"default":"json"}}],"responses":{"200":{"description":"当たった歌","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtaResult"}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/NotReady"}}}},"/api/uta/works":{"get":{"operationId":"listUtaWorks","summary":"集・作品の一覧","description":"和歌の検索で選べる集・作品（[ID, 名前, 分類] の並び）と、全体の首数。","responses":{"200":{"description":"集・作品の一覧","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtaWorks"}}}},"429":{"$ref":"#/components/responses/TooMany"},"503":{"$ref":"#/components/responses/NotReady"}}}},"/api/search/morph":{"get":{"summary":"全文検索の語彙素の索引（品詞・活用形の選択肢）","responses":{"200":{"description":"{dict, works, pos, cform}。索引が無いときは {dict: null}"}}}}},"components":{"parameters":{"yakuOff":{"name":"yaku","in":"query","description":"0 で訳を探さない（既定は訳も探す）","schema":{"type":"string","enum":["0","1"],"default":"1"}},"fuzzy":{"name":"fuzzy","in":"query","description":"0 であいまい検索（ゆるい仮名遣い、かなと漢字の言い換え）をしない","schema":{"type":"string","enum":["0","1"],"default":"1"}},"conj":{"name":"conj","in":"query","description":"0 で活用した形をまとめて探さない（既定は 待つ → 待た・待ち… も探す）","schema":{"type":"string","enum":["0","1"],"default":"1"}},"modern":{"name":"modern","in":"query","description":"1 で近代歌集（明治以降）も探す（既定は外す）","schema":{"type":"string","enum":["0","1"],"default":"0"}}},"responses":{"BadRequest":{"description":"引数の誤り（検索語が長すぎる、無い作品 など）","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooMany":{"description":"回数の制限を超えた。Retry-After の秒数のあとに呼び直す","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotReady":{"description":"起動直後で索引を読んでいる。Retry-After の秒数のあとに呼び直す","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"loading":{"type":"boolean"}}},"SearchResult":{"type":"object","required":["total","works_total","offset","works"],"properties":{"total":{"type":"integer","description":"当たった数"},"works_total":{"type":"integer","description":"当たった作品の数"},"offset":{"type":"integer"},"works":{"type":"array","items":{"type":"object","required":["work_id","work","category","count","hits"],"properties":{"work_id":{"type":"string"},"work":{"type":"string","description":"作品名"},"category":{"type":"string","description":"分類"},"count":{"type":"integer","description":"この作品で当たった数"},"hits":{"type":"array","items":{"type":"object","required":["id","field","by","pre","key","post"],"properties":{"id":{"type":"string","description":"段落 ID"},"field":{"type":"string","description":"text（本文）か yaku（訳）"},"by":{"type":"string","description":"何で当たったか"},"pre":{"type":"string","description":"当たった所の前"},"key":{"type":"string","description":"当たった字"},"post":{"type":"string","description":"当たった所の後"}}}}}}}}},"UtaResult":{"type":"object","required":["total","offset","rows"],"properties":{"total":{"type":"integer","description":"当たった首数"},"offset":{"type":"integer"},"rows":{"type":"array","items":{"type":"object","required":["work_id","work","cat","no","id","text","field","pos","len","by","url"],"properties":{"work_id":{"type":"string"},"work":{"type":"string","description":"集・作品の名前"},"cat":{"type":"string","description":"分類"},"no":{"type":"integer","description":"作品ごとの通し番号"},"id":{"type":"string","description":"段落 ID"},"kotobagaki":{"type":"string","description":"詞書"},"author":{"type":"string","description":"作者"},"text":{"type":"string","description":"歌"},"kana":{"type":"string","description":"読み（あるとき）"},"yaku":{"type":"string","description":"訳（yaku=1 のとき）"},"field":{"type":"string","description":"当たった欄"},"pos":{"type":"integer","description":"当たった位置（字数）"},"len":{"type":"integer","description":"当たった長さ（字数）"},"by":{"type":"string","description":"何で当たったか"},"url":{"type":"string","description":"このサイトで読むページ（https://informanellica.com/kumoi-no-fumigura/ からの相対）"}}}}}},"UtaWorks":{"type":"object","required":["works","poems"],"properties":{"updated":{"type":"string","description":"索引を作った日"},"works":{"type":"array","items":{"type":"array","prefixItems":[{"type":"string"},{"type":"string"},{"type":"string"}],"description":"[ID, 名前, 分類]"}},"poems":{"type":"integer","description":"全体の首数"},"kashu":{"type":"integer"},"morph":{"type":["object","null"]}}}}}}