Cypher (問い合わせ言語)
他のクエリ言語と同様に、Cypherにはパターンの指定、パターンのフィルタリング、および結果を返すためのさまざまなキーワードが含まれています。最も一般的なものは、MATCH、WHERE、RETURNです。これらは、SQLのSELECTおよびWHEREとは少し異なる記述になりますが、同じような動作になります。
MATCHは、ノード、リレーションシップ、またはノードとリレーションシップの組み合わせを検索するための検索パターンを記述する時に使用されます。 CypherのWHEREは、パターンに制約を追加したり不要なパターンを除外したりするために使用されます。 CypherのRETURNは、結果の出力をフォーマットしたり並べたりします。他のクエリ言語と同様に、特定のプロパティ、リスト、並べ替えなどを使用して結果を返すことができます。
Cypherは、データをノードとエッジ(Cypherでは「リレーションシップ」と呼ばれます)で表現するプロパティグラフモデルに基づいています。ノードとリレーションシップと言う標準の要素に加え、プロパティグラフモデルではデータのより細かいカテゴリと属性を記述するためにラベルとプロパティを追加しています。
ノードはグラフではエンティティを表します。ノードとリレーションシップはプロパティと呼ばれる属性(キーバリューペア)をいくつでも持つことができます。ノードは、さまざまな分類を表す0個以上のラベル(タグやカテゴリのようなもの)を付けることができます。リレーションシップは、2つのノードの間に意味のある有向の接続関係を作ります。1つのリレーションシップには、常に方向、開始ノード、終了ノード、および1つのリレーションシップの型があります。ノードと同様に、リレーションシップにもプロパティを設定できます。
ノードに0個以上のラベルを割り当てることにより、類似したノードをグループ化できます。ラベルは一種のタグであり、エンティティの特定の型を指定して検索または作成できます。プロパティは、文字列キーとCypherのデータ型の値で関連づけられたキーバリューペアです。 Cypherのクエリは、データを作成、読み取り、更新、削除する記述と検索条件を組み合わせたノードとリレーションシップで構成されています。