今回と次回は、Hadoopがどのようなシーンで活用されているのか、具体的な事例を基に見ていきます。今回は、国内での活用事例として、国立国会図書館でHadoopを検索インデックスの生成に活用している事例を紹介します。
国立国会図書館サーチ(NDLサーチ)におけるHadoopの活用事例
NDLサーチ[1]とは国立国会図書館が公開している検索サービスです。国立国会図書館をはじめ全国の公立図書館、公文書館、美術館や学術研究機関など、複数の機関が所蔵する著作物の検索が可能で、検索した著作を所蔵している機関の表示や、関連する著作物を検索結果に表示させることができます。
NDLサーチでは、Hadoopを検索インデックスの生成に利用しています。検索インデックスを生成するために、日本全国の機関からデータ収集します。このため処理すべきデータ量は膨大です。NDLサーチにおける検索インデックスの生成はいくつかの処理を経て行われますが、その中でHadoopがどう活用されているのか、NDLサーチについて公表されている情報を基に見てみましょう。
書誌同定処理
NDLサーチでは、検索インデックスを生成する過程で、Hadoopを用いて「書誌同定処理」という処理を行っています。そこでまずは書誌や書誌同定処理とは何かを説明します。
「書誌」とは、本や雑誌などの著作物を検索可能にするための情報を記録したものです。電子化した書誌をここでは「書誌レコード」と呼びます。書誌同定処理とは、異なる機関が管理する書誌レコードが表す著作物の同一性を認定する処理です。なぜ書誌同定処理が必要なのでしょうか。それは、機関ごとに書誌レコードのフォーマットが異なる場合があるためです。このため、書誌同定処理を行わないと発生する不都合があります。例えば、複数の図書館が同じ本を所蔵しているとします。書誌同定処理を行わずにその本を検索すると、書誌レコードのフォーマットが異なるため、同じ本のはずなのに検索結果には別々の本として識別されてしまいます。このように、異なるフォーマットの書誌レコードであっても、同じ著作物であることを判定するために、書誌同定処理が必要なのです。
同定キー
書誌同定処理において、複数の書誌レコードが表す著作物を同一とみなすか判定するために、同定キーと呼ばれるものを利用します。同定キーとは、書誌レコードに含まれるISBNやタイトル、著者名などの項目から生成されたキーです。すなわち、同じ同定キー、または一定基準以上類似性があると認められる同定キーを持つ書誌レコード同士は、同じ著作物についての書誌レコードということになります[2]。
NDLサーチにおける書誌同定処理の利用
冒頭でも述べたとおり、NDLサーチではHadoopを用いて、検索インデックス生成の過程でこの書誌同定処理を実施しています。書誌同定処理の結果は著作物の検索結果を生成する際に利用されています。試しにNDLサーチで「吾輩は猫である」を検索してみましょう。検索結果の1つをたどると、複数の機関が所蔵している場合結果に反映されています
この仕組みを実現するためには、異なる機関が管理している書誌レコードが同じ著作物を表しているものならば、その書誌レコード同士を関連付けておくという処理が必要です。ここに書誌同定処理を利用しています。
NDLサーチにおける書誌同定処理へのHadoopの活用
書誌同定処理とは、大きく次の2つの処理から成り立っています。
- ①各機関が管理する書誌レコードごとに、著作物の特徴を表す「同定キー」を生成する
- ②同定キーを比較することで、異なる機関が管理する書誌レコードが同一の著作物を表しているか判定する
NDLサーチでは書誌同定処理を行って、著作物ごとに所蔵している機関をグループ化したデータを生成し、検索結果の生成に利用しています。書誌同定処理のように、レコードごとに処理した結果を一定のルールに基づいてグループ化する処理は、Hadoopの分散処理フレームワーク「MapReduce」のプログラミングモデルにマッチしています。また処理対象の書誌レコードのフォーマットが機関ごとに異なるという点でも、NDLサーチの様なシステムではHadoopが適しているといえます。扱うファイルのフォーマットがそれぞれ異なる場合、例えばRDBMSのようにスキーマ設計が必要なシステムで書誌同定処理を行うことは難しいでしょう。しかしHadoopでは処理時にその都度データを解釈して処理し、アドホックに意味づけするというアイディアに基づいており、非定形データを扱うことが得意なため機関ごとにフォーマットが異なる書誌レコードでも柔軟に処理することができるのです。
まとめ
今回はHadoopを検索インデックスの生成の際の書誌同定処理に活用する事例を見てきました。今回の例のようにレコードごとに処理を行ったり、あるルールに基づいてレコードをグループ化したりといった処理はHadoopの基本的な使い方です。また非定形データの扱いが得意であることにも触れました。日本の書誌レコードの記録要件では今のところ著作物に関する記録が少なく、フォーマットが統一されているとは限らないため、書誌同定処理を行うためには工夫が必要です。そういった理由もあり書誌同定処理は国内で特に発達した技術だといえます。検索インデックスの生成にHadoopを適用した例は決して珍しくありませんが、書誌同定処理やグループ化といった部分にHadoopを適用したという点は珍しいケースかもしれません。