私はOrientDBグラフにDNS階層を格納するという考えを試していますが、特定のドメインに新しい頂点を追加するのに適切な場所を見つけるのが難しいです。OrientDBで既知のパスを検索しています
私は、この構造を始めています:
CREATE CLASS Zone EXTENDS V
CREATE CLASS Subdomain_of EXTENDS E
CREATE VERTEX Zone CONTENT {name: '.'} #12:0
CREATE VERTEX Zone CONTENT {name: 'com'} #12:1
CREATE VERTEX Zone CONTENT {name: 'net'} #12:2
CREATE VERTEX Zone CONTENT {name: 'org'} #12:3
CREATE VERTEX Zone CONTENT {name: 'example'} #12:4
CREATE VERTEX Zone CONTENT {name: 'www'} #12:5
CREATE EDGE Subdomain FROM #12:1 TO #12:0
CREATE EDGE Subdomain FROM #12:2 TO #12:0
CREATE EDGE Subdomain FROM #12:3 TO #12:0
CREATE EDGE Subdomain FROM #12:4 TO #12:1
CREATE EDGE Subdomain FROM #12:5 TO #12:4
私は、入力として、ドメイン名の文字列を取得し、グラフに関連したサブドメインを追加します保存された関数を作成します。
ドメイン "mail.example.com"を追加したいとします。この関数は、最初にパス.com.example.mailが存在するかどうかを調べる必要があります。そうでない場合は、.com.exampleを確認し、サブドメインのエッジを持つ "mail"の新しい頂点を "example"頂点に追加する必要があります。
特定のパスに基づいてリーフノードを検索する方法はありますか? Neo4j /サイファー構文に似て何か:
MATCH
(:Zone {name: ‘.’})<-[Subdomain]-(:Zone {name: ‘com’})<-[:Subdomain]-(a:Zone {name: ‘example’})
RETURN (ID(a))
おかげで、まだ存在しない場合は、新しい頂点を追加する必要があり、このJava機能付き
チャールズ
、用をあなたはJavaやJavascriptでもっと便利に開発されていますか? 「リーフノードを検索する」という意味を理解できませんでした。たとえば、「www」という「頂点リーフ」があるかどうか検索したいのですか? – lsavio