データの繋がりのグラフ化edit

X-Packのグラフ機能を使用すると、Elasticsearchインデックス内のアイテムがどのように関連しているかがわかります。インデックス化された用語間の繋がりを調べて、どの繋がりが最も優位であるかを知ることができます。これは、不正行為の検出から推奨エンジンまで、多様なアプリケーションに役立ちます。

たとえば、グラフ探索を使用すると、ハッカーがターゲットにしているWebサイトの脆弱性を見つけることができ、Webサイトを強化できます。あるいは、パーソナライズしたグラフベースのお勧めをE-commerceの顧客に提供できます。

X-Packは、シンプルでありながら強力なグラフ探索APIとKibana向けのインタラクティブなグラフのビジュアライゼーションツールを提供しています。どちらも既存のElasticsearchインデックスとすぐに連携できます。X-Packのグラフ機能を使用するために追加のデータを格納する必要はありません。

グラフの機能edit

Graph APIを使用して、Elasticsearchインデックス内のドキュメントや用語に関する情報を展開し要約することもできます。_グラフ_とは、関連するアイテムのネットワークです。この場合、インデックス内の関連する用語のネットワークを意味します。

グラフに含める用語は_頂点_と呼ばれます。2つの頂点間の関連性は、_繋がり_です。繋がりは、頂点の用語の両方を含むドキュメントをまとめます。

Graph components

グラフ理論に関心があれば、頂点と繋がりはそれぞれ_ノード_と_エッジ_であることがわかるでしょう。これらは同じものです。グラフ理論に詳しくないユーザーにわかりやすい用語を使用して、Elasticsearchクラスタ内のノードとの混乱を避けています。

グラフの頂点は、インデックス済みの用語です。繋がりは、Elasticsearchの集約を使用してすぐに展開できます。最も_有意な_接続を特定するために、Graph APIはElasticsearch関連性スコアリングを活用します。テキスト検索をサポートするElasticsearchに組み込まれた同一データ構造と関連ランキングツールを使用すると、Graph APIは、最も繋がりの強いデータに特有のノイズから有益な信号を分離できます。

これを根拠として、次のような質問に容易に答えることができます。

  • 自分のWebサイトをハッキングしようとしている人たちに共通している振る舞いは?
  • ユーザーがこのタイプのガーデニング手袋を購入した場合、興味を持つと思われる他の製品は?
  • Stack Overflowの参加者でHadoop関連テクノロジーとPython関連テクノロジーの両方の経験がある人は?

パフォーマンスについてはどうでしょうか? Elasticsearchの集約フレームワークを使用すると、Graph APIは無数のドキュメントを単一の超強力な繋がりとしてすぐにまとめることができます。口座Aと口座Bの間の銀行取引をすべて取得する代わりに、その関連性を表す単一の繋がりを抽出します。さらに、この要約プロセスは複数ノードのクラスタにわたって機能し、Elasticsearchの配備に応じて拡張します。 詳細なオプションを使って、データの抽出方法と要約方法を制御できます。 グラフのクエリがクラスタに悪影響を及ぼさないように、タイムアウトを設定することもできます。