Solr 開発事例研究:resolutionfinder.org

以下は、ルーシッド・イマジネーションの Solr 事例研究 Solr Development Case Study: resolutionfinder.org の訳である。

15人日で検索アプリケーションを構築

国連のような組織で決議案が可決された場合、その成功の重要な鍵は、影響を受ける地域住民や関連する NGO(非政府組織)に、決議案の実際の内容を確実に周知させることである。決定事項に現状とそれに至った経過を、関係する政府機関に絶えず最新の情報を提供し続けることは、決定にかかわった国々でさえ容易ではないからだ。

データ・レポジトリー(集積場)サイト resolutionfinder.org は、国連決議を入手することを容易にする。ある特定の決議に興味がある人は誰でもその文書を簡単に見つけることができるようにする。世界中どこの市民でも、決議文書を簡単に見つけられ、決議を履行するためにその結果を用いることができるようにすることが、このプロジェクトの目的である。

開発者3人からなるチームがわずか15人日で、ヨーロッパ全土の大学院生や若い専門家のボランティアチームが2年間で収集したデータの全容を閲覧できるフロントエンドを開発した。初期データセットは4つのテーマ(小型武器と軽火器、女性と教育、清潔な飲み水、マラリア)で数千文書、三千条項以上にも及ぶ。

データは、さまざまの国連機関が提供する個々のオンライン文書収納庫から手作業で収集された。そのデータと Solrを使った検索インターフェースの開発は、2010年5月末にジュネーブで開催された UN-connecting the World(世界を結ぶ国連)会議の目玉の一つだった。このアプリケーションは、使用可能なコンセプトとして、また将来の開発の基礎となると技術の展示として始められた。
アプリケーションの急速な開発は、Lucene と Solr が元々持つ強力な機能と、人気の PHP フレームワーク Symfony に基づく統合プラグインのおかげで可能となった。

顧客概要

resolutionfinder.org の目標は、国連合意事項をよりよく実施できるよう、合意事項の入手を促進する手段を作ることだった。現在使えるデータベースとは異なり、resolutionfinder.org は、単に文書をまとめるだけではなく、実施に必要となる条項を抽出し、文書は条項の変更履歴も提供する。最初のリリースでは、レポジトリーには4つのテーマ(清潔な飲み水、マラリア、小型武器と軽火器、女性と教育)で相当量の情報があった。

過去2年間、resolutionfinder.org の開発は、国連協会世界連盟(WFUNA)、特にドイツ国連協会連盟(DGVN)のサポートを受けていた。現在は、国際セキュリティー・ネットワーク(ISN)との提携交渉中である。検索は今のところ、4つのテーマに限定されているので、過去に発表された全ての国連文書を網羅するには至っていない。しかしながら、現在稼働中のシステムでも、良い検索事例がいくつかある。

地域戦略を必要としている NGO が、”malaria” と一致し、”local strategies” (地域戦略)とタグ付けされた,文書を探す場合の検索:

http://resolutionfinder.org/search?q=malaria&t%5B27%5D=local+strategies&tm=any&s=Search

もっと複雑なクエリーとしては、アフリカ以外の地域に関する国連安全保障理事会の決議を探す場合:

http://resolutionfinder.org/?q=%22security+council%22+-africa++region

この開発で活用された Solr の主要機能としては以下のようになる:

  • ステミングを使った全文検索
  • ファセット機能:ユーザーは、最初の検索結果にどのような種類のデータが含まれるかを知ることができ、さらに、絞り込むことが可能となる 。
  • 強調機能:文書がなぜ検索結果に含まれているかを視覚的に知ることができる 。
  • sfSolrPlugin と Doctrine ORM を通じて PHP symfonyフレームワークによる強固なインテグレーション: Solr 構成ファイルの生成と自動データ・インポートに活用 。
  • アプリケーションのどの部分もオープン・ソースなので、ライセンス料が発生しない。

課題

resolutionfinder.org は、完全なボランティア組織のため、現在、IT予算がない。国連の検索の分野の専門家はいるが、アプリケーション開発の専門家はいない。使える開発資源は限られたもので、スイスの Liip AG がスポンサーについても、フロントエンドの開発には、15人日分の時間しか使えなかった。これに加えて、過去2年の研究結果の入った Excel スプレッド・シートをリレーショナル・データベースへ移管する作業も残っていた。

目標は、ファセットを使ったフィルタリング、変更履歴や条項を含む文書表示のできる全文検索機能を提供することだった。ユーザー登録すれば、条項や文書をブックマークしたり、コメントをつけたりすることも可能としたかった。

解決策

チームには、データベース・スキーマがすでにあり、Excelシートのインポートのために、symfonyを使用した管理ツールを使っていた。 Doctrine ORMとsfSolrPluginの使用によって、Solr へのデータ読み込みは、簡単な構成ファイルを書くだけで、完全に自動化された。この構成ファイルは、データ・モデル中のプロパティーとメソッドを、Solr のフィールドに対応させるものだ。この結果、新たなコードなしで、Excel シートのインポートの結果が Solr で自動的に利用可能となった。同じ構成ファイルから、Solr の主要な構成ファイルが生成された。

最後に、 sfSolrPluginは、サーブレットコンテナとして Jetty を使い、管理スクリプトも含んだ Solr のインストレーションと同梱された。テストデータセットを Solr にインポートし、テキスト検索の最初のテストすることは、わずか1日でなされた。これは、目標が実現可能であるという確信をチーム全体与えた。Solr を同梱することにより、開発マシン1台1台に Solr のインストールと設定するための時間を節約できた。

数日中に、ファセット型フィルター機能が統合され、ユーザーは、手動でページの再読み込みなどせずに、いくつかの異なる次元でクリックするだけで結果を絞り込むことが可能となった。Solr に元々備わる強調表示機能により、検索結果中のそれぞれの文書が検索にどう関係しているのかをユーザーが視覚的に理解できるようになった。さらに、文書の法的価値がわかるように結果は異なる色で表示された。結果の絞り込みのために、8次元のファセットが使われた。ファセット表示により、ユーザーは、結果がそれぞれの次元でどのように分散しているかを知ることができるようになった。ソースコード全体は、BSD オープン・ソースのライセンスで使用可能となっている。誰でも改善できるよう、全データを公開する計画もある。

resolutionfinder.org チームの Lukas Smith は、以下のように述べている。「チーム全体は、これほど短い時間に、どれだけのことができるのかに驚いた。元々は洗練されていない技術上のデモ・プログラムを作るつもりだった。最終的なユーザーがどう使うのかについては、想像してもらうしかないと思っていた。ところが、この短い時間で開発が終わり、おまけにちょと磨きをかける時間さえ残った。」

今後の予定

この先数ヶ月の主な焦点は、データベースの質を改善することである。長期的には、国連のかかわる全テーマをデータベースに入れる。この点においては、データベースをより効果的な方法で公開するための情報技の研究は継続する。特に、PDF と HTML 形式の国連文書は、爆発的に増えており、この構文解析を自動化するためのデータマイニングツールの開発は、重要である。データマイニングツールの完成後は、インターフェイスの国連の6つの公用語へのローカライゼーションと、それらの公用語で書かれた文書と条項をカバーすることが開発の核となるであろう。また、年代的側面、特定の国連機関、あるいは加盟国に特化した様々な種類の研究の計画もある。

ソフトウェア

  • 仮想ホスト
  • Linux Debian
  • MySQL RDBMS
  • PHP フロントエンド
日本語訳著作権 © 2010 Basis Technology Corp. 原文著作権 © 2010 Lucid Imagination. All Right Reserved.

Comments are closed.