国会図書館サーチの概要

3,978 views

Published on

第5回Solr勉強会での発表資料です。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,978
On SlideShare
0
From Embeds
0
Number of Embeds
95
Actions
Shares
0
Downloads
39
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

国会図書館サーチの概要

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

×