検索
特集/連載

マルチモデルデータベース「ArangoDB」に要注目ArangoSearchとGeoJSONサポート

数あるNoSQLデータベースの中で特異な位置を占めるのが、複数のデータモデルをサポートする「ArangoDB」だ。

Share
Tweet
LINE
Hatena

 ArangoDBはネイティブマルチモデルデータベースだ。「ArangoDB Community Edition」はC++でコーディングされており、オープンソースライセンス(Apache License 2.0)で利用できる。本稿では、開発者向けトランザクションデータベースとしてのコアバージョン3.4に注目する。このリリースは開発者にとってどのようなものなのか。

 このソフトウェアエンジニアリングの役割は、1つのテクノロジーと1つのクエリ言語を使って「複数のデータモデル」を操作する手段を提供することだ。

 「ArangoDB 3.4」で強化されたのが「ArangoSearch」だ。ArangoDB独自のクエリ言語「AQL」を使って、この機能をトラバーサルや結合(join)と組み合わせると、ArangoDBが「データ」の取得ツールから「情報」の取得ツールへと変わる。

 では、マルチモデルデータベースとは一体何だろう。

 TechTargetは以下のように説明している。

 「マルチモデルデータベースはスコープを広げたデータ処理プラットフォームで、データベース内の情報を編成して並べ替える方法についてのパラメーターを定義できる。複数のモデルを1つのデータベースに組み込めるため、複数のデータベースシステムを導入する必要なく、アプリケーションのさまざまな要件を満たせる」(訳注)

訳注:ArangoDBに限定すると、3つのデータモデル(ドキュメント、キーバリュー、グラフ)をサポートするNoSQLデータベースであるという意味。「MongoDB」ならドキュメント、「Neo4j」ならグラフのように、NoSQLデータベースは一般的に単一のデータモデルに特化している。

 ArangoSearchは、ブール型の検索モデルと汎用(はんよう)ランキング検索モデル(ベクトル空間モデルなど)を組み合わせる。ArangoSearchは、検索エンジンと統合レイヤーの2つのコンポーネントで構成されている。検索エンジンはインデックスの管理、クエリ、スコアリングを担当する。統合レイヤーはエンドユーザーに使いやすい検索機能を提供する。

 開発元によると、ArangoSearchはArangoDBの3つのデータモデル全てと組み合わせることができるという。グラフデータベース機能と連携して使用すると、検索結果を利用して、例えば詐欺防止の強化、個人に合わせたレコメンデーション、精密医療の簡素化などが可能になる。

 このソフトウェアのリリースノートには次のように記載されている。「特殊な実体化ビューを使用して、複数のコレクションに対する全文検索を一度に実行できる。ビュー定義内では、コレクション全体または個別のフィールドを指定できる。こうした指定は、一般的なテキストアナライザーを一つまたは複数使って転置インデックスで対応する必要がある。AQLで表現する検索クエリは、複数のスコアラー(TFIDFやBM25)を組み合わせて結果をランク付けできる」

 ユーザーは、関連性に基づくマッチング、フレーズとプレフィックスによるマッチング、複雑なブール式による検索、クエリ時間関連のチューニングを実行し、複雑なトラバーサル、ジオクエリなどのアクセスパターンを情報検索技法と組み合わせることができる。

 ArangoDB 3.4は、「GeoJSON」と非空間属性をフルサポートする。GeoJSONとは、シンプルな地理機能を表すために設計されたオープンスタンダードフォーマットだ。このサポートには、マルチポリゴンやマルチラインストリングなど、全てのジオプリミティブが含まれている。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る