私はNeo4jでOpenStreetMapデータセットを使用しています。 MERGE()
を使用して、どのように唯一のStreet
とZip
ラベル付きノードを作成できるか分かります。他のノードを指しているが、同じ値のNeo4jのノード
MERGE(street:Street {street_name: n.`addr:street`})
MERGE(zip:ZipCode {zipcode: n.`addr:postcode`})
しかし、私はまたHousenumber
ラベルされたノードをしたい、数字は時々 、同一とすることができるが、これらの数字は、同じ通りを指すことはありません。 MERGE()
はこれには完全には適していないと思います。だから、
、私はこのようなものにするために構造たい:
Street<-number_in_street<-Housenumber
ZipCode<-number_in_zipcode<-Housenumber
Coolstreet<-number_in_street<-20A (Unique Housenumber node 1)
Otherstreet<-number_in_street<-20A (Unique Housenumber node 2)
5680 PC<-number_in_zipcode<-20A (Unique Housenumber node 1)
5680 PC<-number_in_zipcode<-20A (Unique Housenumber node 2)
をどのように私はサイファーと、のNeo4jにOpenStreetMapのデータセットを使用することにより、このような構造を実現することができますか?
編集: 私は、家の番号と特定の組み合わせを持っている、通りの名前を複製にしたくありません。 私は通りとhousenumberを別のノード(重複を防ぐために)として欲しいです。 1つのユニークなストリートは、その通りにある複数の住宅街を指し示す必要があります。
だから私はこのような空白labbeledのノードがあります:ストリート、Housenumberや郵便番号に分割される必要がある
addr:housenumber:199A
addr:street:Coolstreet
source:BAG
addr:postcode:5414 AP
を、 は、要求された構造を有するwhill。
*すべての*アドレスに新しいHousenumberノードを追加しますか?または、ストリートと郵便番号の両方に固有の番号のセット?なぜ?あなたのケースをもう少し詳しく説明するのに役立ちます。 –
@MartinPreusse重複を避けるために、空のノードの例については私の編集を参照してください。空のノードの例は、要求された構造を持つように "分割"する必要があります。 –
私はそれを取得しません。あなたが話しているhousenumberノードの「一意性」を定義するものは何ですか?なぜあなたのような 'MERGE'住宅ノードだけが他のものと' MERGE'の関係を作って関係を作っていないのですか? –