SlideShare a Scribd company logo
1 of 17
Download to read offline
国会図書館サーチの概要
2011/05/16    大谷 純
サービス概要
   国立国会図書館の新しい検索サービス

   国立国会図書館が所蔵する図書の全てを探すことが可能

   都道府県立図書館、政令指定都市の市立図書館の蔵書、
    国立国会図書館デジタルアーカイブポータル(PORTA)が
    収録している各種のデジタル情報も探すことが可能

   本格サービス開始は平成24年1月を予定。現在はプロトタ
    イプ版

   対象データは約3000万(収集データは約5800万件)
                       ※「国立国会図書館サーチ」についてより抜粋
システムの概要
                                                                     PC・携帯

 SRW
                                                   検索系Webアプリ          SRU
          横断検索                                      (Enjuベース)
 HTTP                                                                 Open
                                                                     Search




                                                                DB
                                                  Solr
                                           Solr

                                                     検索・提供機能
                                                     (Ruby/Rails)


OAI-PMH
                                           Solr
          メタデータ
                  XML変換                   インデック
            収集
                                           ス生成
 FTP




                  書誌同定
                  グループ                    差分抽出             DB更新
                    化

                            組織化機能
          収集機能            (Hadoop/HDFS)
システムの概要(収集機能)
                                                                     PC・携帯

 SRW
                                                   検索系Webアプリ          SRU
          横断検索                                      (Enjuベース)
 HTTP                                                                 Open
                                                                     Search




                                                                DB
                                                  Solr
                                           Solr

                                                     検索・提供機能
                                                     (Ruby/Rails)


OAI-PMH
                                           Solr
          メタデータ
                  XML変換                   インデック
            収集
                                           ス生成
 FTP




                  書誌同定
                  グループ                    差分抽出             DB更新
                    化

                            組織化機能
          収集機能            (Hadoop/HDFS)
システムの概要(収集機能)
   横断検索
     リアルタイムに他のサービスへの検索を行う
     Enjuとの連携にはSRUを利用




   メタデータ収集機能
     国会図書館の所蔵する書誌のメタデータの収集
     他機関が提供しているメタデータの収集
システムの概要(組織化機能)
                                                                     PC・携帯

 SRW
                                                   検索系Webアプリ          SRU
          横断検索                                      (Enjuベース)
 HTTP                                                                 Open
                                                                     Search




                                                                DB
                                                  Solr
                                           Solr

                                                     検索・提供機能
                                                     (Ruby/Rails)


OAI-PMH
                                           Solr
          メタデータ
                  XML変換                   インデック
            収集
                                           ス生成
 FTP




                  書誌同定/
                  グループ                    差分抽出             DB更新
                    化

                            組織化機能
          収集機能            (Hadoop/HDFS)
システムの概要(組織化機能)
   XML変換
     収集したメタデータを統一的なXMLに変換
     以降の処理では必要に応じてXMLからデータを抜き出して利
      用


   書誌同定/グループ化
       書誌同定
           複数の図書館から集めたメタデータには同じ書誌に関するデータ
            が存在している。このデータを1つのデータに集約する
       グループ化
           同一書誌ではないが、関連のある書誌(例:ドラえもん1巻と2巻な
            ど)をグルーピングする
システムの概要(組織化機能)
   差分抽出
       変更のあったデータ(追加/更新/削除)を抽出


   Solrインデックス作成
     Solrのインデックスを作成
     SOLR-1301に機能追加したモジュールを利用



   DB更新
       差分抽出で出力された追加/更新/削除のデータをDBに反映
システムの概要(検索・提供機能)
                                                                     PC・携帯

 SRW
                                                   検索系Webアプリ          SRU
          横断検索                                      (Enjuベース)
 HTTP                                                                 Open
                                                                     Search




                                                                DB
                                                  Solr
                                           Solr

                                                     検索・提供機能
                                                     (Ruby/Rails)


OAI-PMH
                                           Solr
          メタデータ
                  XML変換                   インデック
            収集
                                           ス生成
 FTP




                  書誌同定
                  グループ                    差分抽出             DB更新
                    化

                            組織化機能
          収集機能            (Hadoop/HDFS)
システムの概要(検索・提供機能)
   検索系Webアプリ(Enjuベース)
       多種多様な提供プロトコルを採用
           OAI-PMH、SRU/SRW、RSS、OpenSearchなど


       Solr+DBによる書誌検索の提供
       翻訳機能の提供(日中韓英)
       外部サイト連携(カーリル、ブクログなど)
       スマートフォン、携帯への対応
       利用者登録機能
       連想キーワード機能(GETAssoc連携)
ENJUの改良点
   データの持ち方の変更
       1テーブルにXMLをそのまま登録
        Enjuでは著者の管理なども行っているため正規化された
        テーブル構成になっている。


   Sunspotの廃止(rsolrの利用)
       インデックス登録は全てHadoopで行う
        シームレスにSolrに登録できるSunspotの利点が生きない。

       様々なSolrの機能を利用。様々なパラメータをハンドリング
        する必要あり
国会図書館サーチでのSOLRの利用機能
   分散検索(Distributed Search)
       ドキュメント数が多いため
   グループ化表示(Field Collapsing)
       グループ化されたデータの表示
   クラスタリング
       Carrot2によるクラスタリング
   ファセット
       絞り込み候補の提供
   SOLR+Hadoop(SOLR-1301)
       Hadoop上でのインデックス作成
   マルチコア
       インデックスの切り替え
SOLR-1301の概要
   Hadoop上でインデックス作成
     入力データはHDFS上に配置
     Map/Reduce、HDFSの仕組みを利用
     Solrの設定にてスキーマを定義可能


   入力がCSV形式のサンプルプログラムが付属

   URL
    https://issues.apache.org/jira/browse/SOLR-1301
SOLR-1301の概要
   SOLR-1301の流れ

                                    1, Writable
      HDFS       1,aaa,bbb…
                                    2, Writable
                                                           HDFS
                 2,ddd,bbb…
                              Map                 Reduce
        CSV
                 3,aaa,bbb…
    1,aaa,bbb…                      3, Writable
                 4,aaa,bbb…
    2,ddd,bbb…                      4, Writable
    3,aaa,bbb…
    4,aaa,bbb…
                              Map
    5,ccc,yyy…   5,ccc,yyy…

                                    5, Writable   Reduce
                              Map



        Mapフェーズでドキュメントを抽出
           入力:CSVの1行
           出力:ID、MapWritable(Solrフィールド名、値)に変換(1ドキュメン
            ト=1オブジェクト)
SOLR-1301の概要
   SOLR-1301の流れ

                           1, Writable
     HDFS                  2, Writable
                                                  HDFS
                           3, Writable
                     Map                 Reduce


                     Map

                           4, Writable
                                         Reduce
                     Map   5, Writable




       Reduceフェーズでローカルディスクにインデックス作成
         MapWritableをSolrInputDocumentに変換
         EmbeddedSolrServerを利用し、インデックス作成
SOLR-1301の概要
   SOLR-1301の流れ

     HDFS                         HDFS
                   Map   Reduce


                   Map

                         Reduce
                   Map




       最後にHDFS上にインデックスをコピー
SOLR-1301の改修内容
 入力はXML
 XPathにてSolrインデックス対象フィールドのデータを
  抽出

   Senの利用
       SenをHadoopの各ノードにインストールせずに利用出来る形
        に修正


   FieldCollapsing対応
       CollapseのキーをReduceするときのキーに利用し、同一の
        Collapseキーをもつドキュメントは同一Shardに登録される

More Related Content

Viewers also liked

AngularJSを通してDockerと触れ合った
AngularJSを通してDockerと触れ合ったAngularJSを通してDockerと触れ合った
AngularJSを通してDockerと触れ合ったpastelInc
 
AngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみましたAngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみましたpastelInc
 
Protractor로 web ui test 자동화 하기
Protractor로 web ui test 자동화 하기Protractor로 web ui test 자동화 하기
Protractor로 web ui test 자동화 하기GyeongSeok Seo
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJSMizuho Sakamaki
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみるSatoshi KOBAYASHI
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Satoshi KOBAYASHI
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたTakashi Kanai
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Dronix
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdockerJaehwa Park
 
RedmineとGitとスクラム
RedmineとGitとスクラムRedmineとGitとスクラム
RedmineとGitとスクラムTakashi Okamoto
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise DockerLee Ji Eun
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기raccoony
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」akipii Oga
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門Masahito Zembutsu
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストMasahiko Asai
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようmookjp
 

Viewers also liked (20)

AngularJSを通してDockerと触れ合った
AngularJSを通してDockerと触れ合ったAngularJSを通してDockerと触れ合った
AngularJSを通してDockerと触れ合った
 
AngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみましたAngularとWeb Audio APIはじめてみました
AngularとWeb Audio APIはじめてみました
 
Protractor로 web ui test 자동화 하기
Protractor로 web ui test 자동화 하기Protractor로 web ui test 자동화 하기
Protractor로 web ui test 자동화 하기
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみる
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdocker
 
RedmineとGitとスクラム
RedmineとGitとスクラムRedmineとGitとスクラム
RedmineとGitとスクラム
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise Docker
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェスト
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 

Similar to 国会図書館サーチの概要

Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessShinsuke Sugaya
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進Shun Shiramatsu
 
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」Kosuke Tanabe
 
RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API DesignAkinari Tsugo
 
図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうにはTakanori Hayashi
 
セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDBHirosuke Asano
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発Toshiaki Katayama
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Kai Sasaki
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
RubyとPost Gis
RubyとPost GisRubyとPost Gis
RubyとPost Gisngi group.
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
Erlang Web
Erlang WebErlang Web
Erlang WebNgoc Dao
 
Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Kosuke Tanabe
 

Similar to 国会図書館サーチの概要 (17)

Apache Solr 入門
Apache Solr 入門Apache Solr 入門
Apache Solr 入門
 
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
 
RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API Design
 
図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには
 
セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDB
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発
 
BEAR.Sunday.meetup #0
BEAR.Sunday.meetup #0BEAR.Sunday.meetup #0
BEAR.Sunday.meetup #0
 
Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~Spark MLlib code reading ~optimization~
Spark MLlib code reading ~optimization~
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
RubyとPost Gis
RubyとPost GisRubyとPost Gis
RubyとPost Gis
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
Erlang Web
Erlang WebErlang Web
Erlang Web
 
Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8
 

More from Kosuke Tanabe

Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91Kosuke Tanabe
 
Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90Kosuke Tanabe
 
Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89Kosuke Tanabe
 
Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88Kosuke Tanabe
 
Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86Kosuke Tanabe
 
Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78Kosuke Tanabe
 
オープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L Enjuのいまとこれからオープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L EnjuのいまとこれからKosuke Tanabe
 
Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75Kosuke Tanabe
 
Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76Kosuke Tanabe
 
Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74Kosuke Tanabe
 
Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Kosuke Tanabe
 
Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65Kosuke Tanabe
 
Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64Kosuke Tanabe
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Kosuke Tanabe
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Kosuke Tanabe
 
Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59Kosuke Tanabe
 

More from Kosuke Tanabe (20)

Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91
 
Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90
 
Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89
 
Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88
 
Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86
 
Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78
 
オープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L Enjuのいまとこれからオープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L Enjuのいまとこれから
 
Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75
 
Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76
 
Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74
 
nextlenju73
nextlenju73nextlenju73
nextlenju73
 
Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)
 
Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65
 
enju_ws_65
enju_ws_65enju_ws_65
enju_ws_65
 
Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62
 
Next-L Enju LRM
Next-L Enju LRMNext-L Enju LRM
Next-L Enju LRM
 
Enju ws 60
Enju ws 60Enju ws 60
Enju ws 60
 
Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

国会図書館サーチの概要

  • 2. サービス概要  国立国会図書館の新しい検索サービス  国立国会図書館が所蔵する図書の全てを探すことが可能  都道府県立図書館、政令指定都市の市立図書館の蔵書、 国立国会図書館デジタルアーカイブポータル(PORTA)が 収録している各種のデジタル情報も探すことが可能  本格サービス開始は平成24年1月を予定。現在はプロトタ イプ版  対象データは約3000万(収集データは約5800万件) ※「国立国会図書館サーチ」についてより抜粋
  • 3. システムの概要 PC・携帯 SRW 検索系Webアプリ SRU 横断検索 (Enjuベース) HTTP Open Search DB Solr Solr 検索・提供機能 (Ruby/Rails) OAI-PMH Solr メタデータ XML変換 インデック 収集 ス生成 FTP 書誌同定 グループ 差分抽出 DB更新 化 組織化機能 収集機能 (Hadoop/HDFS)
  • 4. システムの概要(収集機能) PC・携帯 SRW 検索系Webアプリ SRU 横断検索 (Enjuベース) HTTP Open Search DB Solr Solr 検索・提供機能 (Ruby/Rails) OAI-PMH Solr メタデータ XML変換 インデック 収集 ス生成 FTP 書誌同定 グループ 差分抽出 DB更新 化 組織化機能 収集機能 (Hadoop/HDFS)
  • 5. システムの概要(収集機能)  横断検索  リアルタイムに他のサービスへの検索を行う  Enjuとの連携にはSRUを利用  メタデータ収集機能  国会図書館の所蔵する書誌のメタデータの収集  他機関が提供しているメタデータの収集
  • 6. システムの概要(組織化機能) PC・携帯 SRW 検索系Webアプリ SRU 横断検索 (Enjuベース) HTTP Open Search DB Solr Solr 検索・提供機能 (Ruby/Rails) OAI-PMH Solr メタデータ XML変換 インデック 収集 ス生成 FTP 書誌同定/ グループ 差分抽出 DB更新 化 組織化機能 収集機能 (Hadoop/HDFS)
  • 7. システムの概要(組織化機能)  XML変換  収集したメタデータを統一的なXMLに変換  以降の処理では必要に応じてXMLからデータを抜き出して利 用  書誌同定/グループ化  書誌同定  複数の図書館から集めたメタデータには同じ書誌に関するデータ が存在している。このデータを1つのデータに集約する  グループ化  同一書誌ではないが、関連のある書誌(例:ドラえもん1巻と2巻な ど)をグルーピングする
  • 8. システムの概要(組織化機能)  差分抽出  変更のあったデータ(追加/更新/削除)を抽出  Solrインデックス作成  Solrのインデックスを作成  SOLR-1301に機能追加したモジュールを利用  DB更新  差分抽出で出力された追加/更新/削除のデータをDBに反映
  • 9. システムの概要(検索・提供機能) PC・携帯 SRW 検索系Webアプリ SRU 横断検索 (Enjuベース) HTTP Open Search DB Solr Solr 検索・提供機能 (Ruby/Rails) OAI-PMH Solr メタデータ XML変換 インデック 収集 ス生成 FTP 書誌同定 グループ 差分抽出 DB更新 化 組織化機能 収集機能 (Hadoop/HDFS)
  • 10. システムの概要(検索・提供機能)  検索系Webアプリ(Enjuベース)  多種多様な提供プロトコルを採用  OAI-PMH、SRU/SRW、RSS、OpenSearchなど  Solr+DBによる書誌検索の提供  翻訳機能の提供(日中韓英)  外部サイト連携(カーリル、ブクログなど)  スマートフォン、携帯への対応  利用者登録機能  連想キーワード機能(GETAssoc連携)
  • 11. ENJUの改良点  データの持ち方の変更  1テーブルにXMLをそのまま登録 Enjuでは著者の管理なども行っているため正規化された テーブル構成になっている。  Sunspotの廃止(rsolrの利用)  インデックス登録は全てHadoopで行う シームレスにSolrに登録できるSunspotの利点が生きない。  様々なSolrの機能を利用。様々なパラメータをハンドリング する必要あり
  • 12. 国会図書館サーチでのSOLRの利用機能  分散検索(Distributed Search)  ドキュメント数が多いため  グループ化表示(Field Collapsing)  グループ化されたデータの表示  クラスタリング  Carrot2によるクラスタリング  ファセット  絞り込み候補の提供  SOLR+Hadoop(SOLR-1301)  Hadoop上でのインデックス作成  マルチコア  インデックスの切り替え
  • 13. SOLR-1301の概要  Hadoop上でインデックス作成  入力データはHDFS上に配置  Map/Reduce、HDFSの仕組みを利用  Solrの設定にてスキーマを定義可能  入力がCSV形式のサンプルプログラムが付属  URL https://issues.apache.org/jira/browse/SOLR-1301
  • 14. SOLR-1301の概要  SOLR-1301の流れ 1, Writable HDFS 1,aaa,bbb… 2, Writable HDFS 2,ddd,bbb… Map Reduce CSV 3,aaa,bbb… 1,aaa,bbb… 3, Writable 4,aaa,bbb… 2,ddd,bbb… 4, Writable 3,aaa,bbb… 4,aaa,bbb… Map 5,ccc,yyy… 5,ccc,yyy… 5, Writable Reduce Map  Mapフェーズでドキュメントを抽出  入力:CSVの1行  出力:ID、MapWritable(Solrフィールド名、値)に変換(1ドキュメン ト=1オブジェクト)
  • 15. SOLR-1301の概要  SOLR-1301の流れ 1, Writable HDFS 2, Writable HDFS 3, Writable Map Reduce Map 4, Writable Reduce Map 5, Writable  Reduceフェーズでローカルディスクにインデックス作成  MapWritableをSolrInputDocumentに変換  EmbeddedSolrServerを利用し、インデックス作成
  • 16. SOLR-1301の概要  SOLR-1301の流れ HDFS HDFS Map Reduce Map Reduce Map  最後にHDFS上にインデックスをコピー
  • 17. SOLR-1301の改修内容  入力はXML  XPathにてSolrインデックス対象フィールドのデータを 抽出  Senの利用  SenをHadoopの各ノードにインストールせずに利用出来る形 に修正  FieldCollapsing対応  CollapseのキーをReduceするときのキーに利用し、同一の Collapseキーをもつドキュメントは同一Shardに登録される