Neo4j - Hızlı Kılavuz
Neo4j, Java teknolojisi kullanılarak geliştirilen dünyanın önde gelen açık kaynaklı Grafik Veritabanıdır. Oldukça ölçeklenebilir ve şema içermez (NoSQL).
Grafik Veritabanı nedir?
Grafik, bazı nesne çiftlerinin bağlantılarla birbirine bağlandığı bir dizi nesnenin resimli bir temsilidir. İki öğeden oluşur - düğümler (köşeler) ve ilişkiler (kenarlar).
Grafik veritabanı, verileri grafik biçiminde modellemek için kullanılan bir veritabanıdır. Burada, bir grafiğin düğümleri varlıkları gösterirken, ilişkiler bu düğümlerin ilişkisini gösterir.
Popüler Grafik Veritabanları
Neo4j, popüler bir Grafik Veritabanıdır. Diğer Grafik Veritabanları Oracle NoSQL Veritabanı, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph ve AllegroGraph'tır.
Neden Grafik Veritabanları?
Günümüzde verilerin çoğu, farklı nesneler arasındaki ilişki biçiminde mevcuttur ve çoğu zaman veriler arasındaki ilişki, verilerin kendisinden daha değerlidir.
İlişkisel veritabanları, yapılandırılmış verileri depolamak için kullanılabilmeleri için aynı tür verileri depolayan çeşitli kayıtlara sahip yüksek düzeyde yapılandırılmış verileri depolar ve veriler arasındaki ilişkileri depolamazlar.
Diğer veritabanlarından farklı olarak, grafik veritabanları ilişkileri ve bağlantıları birinci sınıf varlıklar olarak depolar.
Grafik veritabanları için veri modeli, diğer veritabanlarına kıyasla daha basittir ve OLTP sistemleri ile kullanılabilirler. İşlem bütünlüğü ve operasyonel kullanılabilirlik gibi özellikler sağlarlar.
RDBMS Vs Grafik Veritabanı
İlişkisel veritabanları ile Grafik veritabanlarını karşılaştıran tablo aşağıdadır.
Sr.No | RDBMS | Grafik Veritabanı |
---|---|---|
1 | Tablolar | Grafikler |
2 | Satırlar | Düğümler |
3 | Sütunlar ve Veriler | Özellikleri ve değerleri |
4 | Kısıtlamalar | İlişkiler |
5 | Katılır | Geçiş |
Neo4j'nin Avantajları
Aşağıda Neo4j'nin avantajları verilmiştir.
Flexible data model - Neo4j, uygulamalara ve endüstrilere göre kolayca değiştirilebilen esnek, basit ama güçlü bir veri modeli sağlar.
Real-time insights - Neo4j, gerçek zamanlı verilere dayalı sonuçlar sağlar.
High availability - Neo4j, işlem garantili büyük kurumsal gerçek zamanlı uygulamalar için yüksek oranda kullanılabilir.
Connected and semi structures data - Neo4j kullanarak, bağlı ve yarı yapılandırılmış verileri kolayca temsil edebilirsiniz.
Easy retrieval - Neo4j kullanarak, bağlı verileri diğer veritabanlarına kıyasla daha hızlı temsil etmekle kalmaz, aynı zamanda kolayca geri alabilirsiniz (çapraz / gezinme).
Cypher query language- Neo4j, ascii-art sözdizimi kullanarak grafiği görsel olarak temsil etmek için bildirim temelli bir sorgu dili sağlar. Bu dilin komutları okunabilir formattadır ve öğrenmesi çok kolaydır.
No joins - Neo4j kullanıldığında, bitişik düğüm veya ilişki ayrıntılarını birleştirmeler veya dizinler olmadan almak çok kolay olduğundan, bağlı / ilgili verileri almak için karmaşık birleştirmeler gerektirmez.
Neo4j'nin Özellikleri
Aşağıda Neo4j'nin dikkate değer özellikleri verilmiştir -
Data model (flexible schema)- Neo4j, yerel özellik grafik modeli adlı bir veri modelini takip eder. Burada grafik, düğümleri (varlıkları) içerir ve bu düğümler birbirine bağlıdır (ilişkilerle gösterilir). Düğümler ve ilişkiler, verileri özellikler olarak bilinen anahtar / değer çiftlerinde depolar.
Neo4j'de sabit bir şemayı takip etmeye gerek yoktur. Gereksinime göre özellikler ekleyebilir veya kaldırabilirsiniz. Ayrıca şema kısıtlamaları da sağlar.
ACID properties - Neo4j, tam ACID (Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık) kurallarını destekler.
Scalability and reliability- Sorgu işleme hızını ve veri bütünlüğünü etkilemeden okuma / yazma sayısını ve hacmi artırarak veritabanını ölçeklendirebilirsiniz. Neo4j ayrıcareplication veri güvenliği ve güvenilirliği için.
Cypher Query Language- Neo4j, Cypher olarak bilinen güçlü bir bildirime dayalı sorgu dili sağlar. Grafikleri tasvir etmek için ASCII-art kullanır. Cypher'ın öğrenilmesi kolaydır ve Joins gibi karmaşık sorguları kullanmadan veriler arasında ilişkiler oluşturmak ve almak için kullanılabilir.
Built-in web application - Neo4j yerleşik bir Neo4j Browserweb uygulaması. Bunu kullanarak grafik verilerinizi oluşturabilir ve sorgulayabilirsiniz.
Drivers - Neo4j ile çalışabilir -
Java, Spring, Scala vb. Programlama dilleriyle çalışmak için REST API
Node JS gibi UI MVC çerçeveleriyle çalışmak için Java Script.
Java uygulamaları geliştirmek için iki tür Java API'yi destekler: Cypher API ve Native Java API. Bunlara ek olarak MongoDB, Cassandra vb. Diğer veri tabanlarıyla da çalışabilirsiniz.
Indexing - Neo4j, Apache Lucence kullanarak Dizinleri destekler.
Neo4j Özellik Grafiği Veri Modeli
Neo4j Grafik Veritabanı, verilerini depolamak ve yönetmek için Özellik Grafik Modelini takip eder.
Mülk Grafik Modelinin temel özellikleri aşağıdadır -
Model Düğümler, İlişkiler ve Özelliklerdeki verileri temsil eder
Özellikler, anahtar / değer çiftleridir
Düğümler daire kullanılarak temsil edilir ve İlişkiler ok tuşları kullanılarak gösterilir
İlişkilerin yönleri vardır: Tek Yönlü ve Çift Yönlü
Her İlişki "Başlangıç Düğümü" veya "Düğümden" ve "Düğüme" veya "Bitiş Düğümü" içerir
Hem Düğümler hem de İlişkiler özellikler içerir
İlişkiler düğümleri birbirine bağlar
Özellik Grafiği Veri Modelinde ilişkiler yönlü olmalıdır. Yönsüz ilişkiler kurmaya çalışırsak, o zaman bir hata mesajı verir.
Neo4j'de de ilişkiler yönlü olmalıdır. Yönsüz ilişkiler kurmaya çalışırsak, Neo4j "İlişkiler yönlü olmalıdır" diyen bir hata mesajı atacaktır.
Neo4j Grafik Veritabanı, tüm verilerini Düğümler ve İlişkilerde depolar. Neo4j veritabanı verilerini depolamak için ek RRBMS Veritabanına veya herhangi bir SQL veritabanına ihtiyacımız yoktur. Verilerini Grafikler cinsinden kendi yerel formatında saklar.
Neo4j, Yerel grafik depolama formatıyla çalışmak için Yerel GPE'yi (Grafik İşleme Motoru) kullanır.
Graph DB Veri Modelinin ana yapı taşları şunlardır:
- Nodes
- Relationships
- Properties
Aşağıda, Özellik Grafiğinin basit bir örneği verilmiştir.
Burada Düğümleri Çevreleri kullanarak temsil ettik. İlişkiler Oklar kullanılarak temsil edilir. İlişkiler yönlüdür. Düğümün verilerini Özellikler (anahtar-değer çiftleri) cinsinden temsil edebiliriz. Bu örnekte, Düğümün Çemberi içindeki her bir Düğümün Kimlik özelliğini temsil ettik.
Bu bölümde, Neo4j'yi exe dosyası kullanarak sisteminize nasıl kuracağınızı tartışacağız.
Windows exe Dosyası ile Neo4j Veritabanı Sunucusu Kurulumu
Neo4j'yi sisteminize indirmek için aşağıdaki adımları izleyin.
Step 1 - Neo4j resmi sitesini kullanarak https://neo4j.com/. Tıkladığınızda, bu bağlantı sizi neo4j web sitesinin ana sayfasına götürecektir.
Step 2- Yukarıdaki ekran görüntüsünde vurgulandığı gibi, bu sayfanın sağ üst tarafında bir İndir düğmesi vardır. Tıkla.
Step 3- Bu sizi, topluluk sürümünü ve Neo4j'nin kurumsal sürümünü indirebileceğiniz indirme sayfasına yönlendirecektir. İlgili düğmeye tıklayarak yazılımın topluluk sürümünü indirin.
Step 4- Bu sizi Neo4j yazılımının farklı işletim sistemleriyle uyumlu topluluk sürümünü indirebileceğiniz sayfaya götürecektir. İstenilen işletim sistemine ait dosyayı indirin.
Bu, adlı bir dosyayı indirecek neo4j-community_windows-x64_3_1_1.exe aşağıdaki ekran görüntüsünde gösterildiği gibi sisteminize.
Step 5 - Neo4j Sunucusunu kurmak için exe dosyasına çift tıklayın.
Step 6- Lisans sözleşmesini kabul edin ve kuruluma devam edin. İşlem tamamlandıktan sonra Neo4j'nin sisteminize kurulu olduğunu görebilirsiniz.
Sunucuyu Başlatma
Step 1 - Windows başlat menüsüne tıklayın ve Neo4j için başlat menüsü kısayoluna tıklayarak Neo4j sunucusunu başlatın.
Step 2- Kısayolu tıkladığınızda, Neo4j Community sürümü için bir pencere açılır. Varsayılan olarak c: \ Kullanıcılar \ [kullanıcı adı] \ Belgeler \ Neo4j \ default.graphdb'yi seçer. İsterseniz, yolunuzu farklı bir dizine değiştirebilirsiniz.
Step 3 - Neo4j sunucusunu başlatmak için "Başlat" düğmesine tıklayın.
Sunucu başladığında, veritabanı dizininin aşağıdaki ekran görüntüsünde gösterildiği gibi doldurulduğunu gözlemleyebilirsiniz.
Neo4j ile çalışmak
Önceki bölümlerde tartışıldığı gibi neo4j, Neo4j ile çalışmak için yerleşik bir gözatma uygulaması sağlar. Neo4j'ye URL'yi kullanarak erişebilirsinizhttp://localhost:7474/
Neo4j Grafik Veritabanı aşağıdaki yapı taşlarına sahiptir -
- Nodes
- Properties
- Relationships
- Labels
- Veri Tarayıcı
Düğüm
Düğüm, bir Grafiğin temel bir birimidir. Aşağıdaki görüntüde gösterildiği gibi anahtar / değer çiftlerine sahip özellikler içerir.
Burada Düğüm Adı = "Çalışan" ve anahtar-değer çiftleri olarak bir dizi özellik içerir.
Özellikleri
Özellik, Grafik Düğümlerini ve İlişkileri açıklayan bir anahtar / değer çiftidir.
Key = Value
Anahtar bir Dizedir ve Değer, herhangi bir Neo4j Veri türü kullanılarak temsil edilebilir.
İlişkiler
İlişkiler, Grafik Veritabanının diğer bir önemli yapı taşıdır. Aşağıdaki şekilde gösterildiği gibi iki düğümü birbirine bağlar.
Burada Emp ve Dept iki farklı düğümdür. "WORKS_FOR", Emp ve Dept düğümleri arasındaki bir ilişkidir.
Emp'den Dept'e kadar olan ok işaretinden de anlaşılacağı gibi, bu ilişki -
Emp WORKS_FOR Dept
Her ilişki bir başlangıç düğümü ve bir bitiş düğümü içerir.
Burada, "Emp" bir başlangıç düğümü ve "Dept" bir bitiş düğümüdür.
Bu ilişki oku işareti "Emp" düğümünden "Dept" düğümüne bir ilişkiyi temsil ettiğinden, bu ilişki "Gelen İlişki" ile "Bölüm" Düğümü ve "Giden İlişki" ile "Emp" düğümüne bir ilişki olarak bilinir.
Düğümler gibi ilişkiler de anahtar-değer çiftleri olarak özellikler içerebilir.
Burada, "WORKS_FOR" ilişkisinin anahtar-değer çifti olarak bir özelliği vardır.
Id = 123
Bu ilişkinin bir kimliğini temsil eder.
Etiketler
Etiket, ortak bir adı bir dizi düğüm veya ilişkiyle ilişkilendirir. Bir düğüm veya ilişki bir veya daha fazla etiket içerebilir. Mevcut düğümler veya ilişkiler için yeni etiketler oluşturabiliriz. Mevcut etiketleri mevcut düğümlerden veya ilişkilerden kaldırabiliriz.
Önceki diyagramdan iki düğüm olduğunu görebiliriz.
Sol taraftaki düğümün Etiketi: "Emp" ve sağ taraftaki düğümün Etiketi: "Dept".
Bu iki düğüm arasındaki ilişkinin de bir Etiketi vardır: "WORKS_FOR".
Note - Neo4j, verileri Düğümlerin veya İlişkilerin Özellikleri'nde depolar.
Neo4j Veri Tarayıcısı
Neo4j'i kurduktan sonra, aşağıdaki URL'yi kullanarak Neo4j Veri Tarayıcısına erişebiliriz
http://localhost:7474/browser/
Neo4j Data Browser, CQL komutlarını yürütmek ve çıktıyı görüntülemek için kullanılır.
Burada, tüm CQL komutlarını dolar isteminde yürütmemiz gerekiyor: "$"
Dolar sembolünden sonra komutları yazın ve komutlarınızı çalıştırmak için "Yürüt" düğmesini tıklayın.
Neo4j Veritabanı Sunucusu ile etkileşime girer, sonuçları alır ve dolar isteminin hemen altında görüntüler.
Sonuçları diyagram formatında görüntülemek için "VI Görüntüle" düğmesini kullanın. Yukarıdaki diyagram, sonuçları "UI Görünümü" formatında gösterir.
Sonuçları Izgara Görünümünde görüntülemek için "Izgara Görünümü" düğmesini kullanın. Aşağıdaki diyagram, "Izgara Görünümü" formatında aynı sonuçları göstermektedir.
Sorgu sonuçlarımızı görüntülemek için "Izgara Görünümü" kullandığımızda, bunları iki farklı formatta bir dosyaya aktarabiliriz.
CSV
Sonuçları csv dosyası biçiminde dışa aktarmak için "CSV'yi Dışa Aktar" düğmesini tıklayın.
JSON
Sonuçları JSON dosya biçiminde dışa aktarmak için "JSON Dışa Aktar" düğmesini tıklayın.
Ancak, Sorgu sonuçlarımızı görmek için "UI Görünümü" kullanırsak, bunları yalnızca tek bir biçimde bir dosyaya aktarabiliriz: JSON
CQL, Cypher Query Language anlamına gelir. Oracle Database'in SQL sorgu dili gibi, Neo4j de sorgu dili olarak CQL'e sahiptir.
Neo4j CQL
- Neo4j Grafik Veritabanı için bir sorgu dilidir.
- Bildirim temelli bir kalıp eşleştirme dilidir.
- SQL benzeri sözdizimini takip eder.
- Sözdizimi çok basittir ve okunabilir biçimdedir.
Oracle SQL gibi
Neo4j CQL, Veritabanı işlemlerini gerçekleştirmek için komutlara sahiptir.
Neo4j CQL, çok karmaşık sorguları kolay bir şekilde yazmak için WHERE, ORDER BY, vb. Gibi birçok cümleyi destekler.
Neo4j CQL, String, Aggregation gibi bazı işlevleri destekler. Bunlara ek olarak, bazı İlişki İşlevlerini de destekler.
Neo4j CQL Maddeleri
Aşağıda Neo4j'nin okuma maddeleri verilmiştir Cypher Query Language -
Sr.No | Maddeleri Okuyun | Kullanım |
---|---|---|
1 | EŞLEŞME | Bu madde, verileri belirli bir modelle aramak için kullanılır. |
2 | İSTEĞE BAĞLI MAÇ | Bu, eşleşmeyle aynıdır, tek fark, modelin eksik kısımları olması durumunda boş değerleri kullanabilmesidir. |
3 | NEREDE | Bu madde kimliği, CQL sorgularına içerik eklemek için kullanılır. |
4 | BAŞLAT | Bu madde, eski dizinler aracılığıyla başlangıç noktalarını bulmak için kullanılır. |
5 | CSV YÜKLE | Bu madde, CSV dosyalarından verileri içeri aktarmak için kullanılır. |
Aşağıda Neo4j'nin yazma maddeleri verilmiştir Cypher Query Language -
Sr.No | Fıkra Yaz | Kullanım |
---|---|---|
1 | OLUŞTURMAK | Bu madde, düğümler, ilişkiler ve özellikler oluşturmak için kullanılır. |
2 | BİRLEŞTİRMEK | Bu madde, belirtilen modelin grafikte mevcut olup olmadığını doğrular. Değilse, deseni yaratır. |
3 | AYARLAMAK | Bu madde, düğümlerdeki etiketleri, düğümlerdeki özellikleri ve ilişkileri güncellemek için kullanılır. |
4 | SİL | Bu madde, grafikten düğümleri ve ilişkileri veya yolları vb. Silmek için kullanılır. |
5 | KALDIRMAK | Bu madde, özellikleri ve öğeleri düğümlerden ve ilişkilerden kaldırmak için kullanılır. |
6 | HER BİRİ İÇİN | Bu sınıf, bir listedeki verileri güncellemek için kullanılır. |
7 | EŞSİZ OLUŞTUR | CREATE ve MATCH maddelerini kullanarak, mevcut kalıbı eşleştirerek ve eksik olanı oluşturarak benzersiz bir model elde edebilirsiniz. |
8 | CSV dosyalarını Cypher ile içe aktarma | CSV Yükle'yi kullanarak .csv dosyalarından verileri içe aktarabilirsiniz. |
Neo4j'nin genel maddeleri aşağıdadır Cypher Query Language -
Sr.No | Genel Hükümler | Kullanım |
---|---|---|
1 | DÖNÜŞ | Bu madde, sorgu sonuç kümesine neyin dahil edileceğini tanımlamak için kullanılır. |
2 | TARAFINDAN SİPARİŞ | Bu madde, bir sorgunun çıktısını sırayla düzenlemek için kullanılır. Cümlelerle birlikte kullanılırRETURN veya WITH. |
3 | SINIR | Bu madde, sonuçtaki satırları belirli bir değerle sınırlamak için kullanılır. |
4 | ATLA | Bu cümle, çıktıdaki satırları dahil ederek hangi satırdan başlayacağını tanımlamak için kullanılır. |
5 | İLE | Bu madde, sorgu parçalarını birbirine zincirlemek için kullanılır. |
6 | RÜZGR | Bu madde, bir listeyi bir dizi satıra genişletmek için kullanılır. |
7 | BİRLİK | Bu madde, birden çok sorgunun sonucunu birleştirmek için kullanılır. |
8 | ARAMAK | Bu madde, veritabanında konuşlandırılan bir yordamı çağırmak için kullanılır. |
Neo4j CQL İşlevleri
Aşağıda sık kullanılan Neo4j CQL İşlevleri verilmiştir -
Sr.No | CQL Fonksiyonları | Kullanım |
---|---|---|
1 | Dize | String değişmezleriyle çalışmak için kullanılırlar. |
2 | Toplama | CQL Sorgusu sonuçlarında bazı toplama işlemlerini gerçekleştirmek için kullanılırlar. |
3 | İlişki | Başlangıç düğümü, bitiş düğümü vb. İlişkilerin ayrıntılarını almak için kullanılırlar. |
Tüm Neo4j CQL komutlarını, cümleciklerini ve fonksiyon sözdizimini, kullanımı ve örnekleri sonraki bölümlerde ayrıntılı olarak tartışacağız.
Neo4j CQL Veri Türleri
Bu veri türleri Java diline benzer. Bir düğümün veya bir ilişkinin özelliklerini tanımlamak için kullanılırlar.
Neo4j CQL aşağıdaki veri türlerini destekler -
Sr.No | CQL Veri Türü | Kullanım |
---|---|---|
1 | Boole | Boole değişmezlerini temsil etmek için kullanılır: true, false. |
2 | bayt | 8 bitlik tam sayıları temsil etmek için kullanılır. |
3 | kısa | 16 bitlik tam sayıları temsil etmek için kullanılır. |
4 | int | 32 bitlik tam sayıları temsil etmek için kullanılır. |
5 | uzun | 64 bitlik tam sayıları temsil etmek için kullanılır. |
6 | yüzen | 32 bitlik kayan noktalı sayıları temsil etmek için kullanılır. |
7 | çift | 64 bitlik kayan noktalı sayıları temsil etmek için kullanılır. |
8 | kömür | 16 bitlik karakterleri temsil etmek için kullanılır. |
9 | Dize | Dizeleri temsil etmek için kullanılır. |
CQL Operatörleri
Aşağıda Neo4j Cypher Query dili tarafından desteklenen operatörlerin listesi bulunmaktadır.
Sr.No | Tür | Operatörler |
---|---|---|
1 | Matematiksel | +, -, *, /,%, ^ |
2 | Karşılaştırma | +, <>, <,>, <=,> = |
3 | Boole | AND, OR, XOR, NOT |
4 | Dize | + |
5 | Liste | +, İÇİNDE, [X], [X… ..Y] |
6 | Düzenli ifade | = - |
7 | Dize eşleme | KISITLAMALARLA BAŞLAR, BİTİR |
Neo4j CQL'de Boole Operatörleri
Neo4j, çoklu koşulları desteklemek için Neo4j CQL WHERE yan tümcesinde kullanılacak aşağıdaki Boole operatörlerini destekler.
Sr.No | Boole Operatörleri | Açıklama |
---|---|---|
1 | VE | AND işlemini desteklemek için bir Neo4j CQL anahtar kelimesidir. SQL AND operatörü gibidir. |
2 | VEYA | OR işlemini desteklemek için bir Neo4j CQL anahtar kelimesidir. SQL AND operatörü gibidir. |
3 | DEĞİL | NOT işlemini desteklemek için bir Neo4j CQL anahtar kelimesidir. SQL AND operatörü gibidir. |
4 | ÖZELVEYA | XOR işlemini desteklemek için bir Neo4j CQL anahtar kelimesidir. SQL AND operatörü gibidir. |
Neo4j CQL'de Karşılaştırma Operatörleri
Neo4j, koşulları desteklemek için Neo4j CQL WHERE yan tümcesinde kullanılmak üzere aşağıdaki Karşılaştırma operatörlerini destekler.
Sr.No | Boole Operatörleri | Açıklama |
---|---|---|
1 | = | Bir Neo4j CQL "Eşittir" operatörüdür. |
2 | <> | Bu bir Neo4j CQL "Eşit Değildir" operatörüdür. |
3 | < | Bu bir Neo4j CQL "Less Than" operatörüdür. |
4 | > | Bu bir Neo4j CQL "Büyüktür" operatörüdür. |
5 | <= | Bu bir Neo4j CQL "Küçük veya Eşittir" operatörüdür. |
6 | > = | Bu bir Neo4j CQL "Büyük veya Eşittir" operatörüdür. |
Tartışıldığı gibi, bir düğüm bir grafik veri tabanındaki bir veri / kayıttır. Neo4j'de bir düğüm oluşturabilirsiniz.CREATEfıkra. Bu bölüm size nasıl yapılacağını öğretir -
- Tek bir düğüm oluşturun
- Birden çok düğüm oluşturun
- Etiketli bir düğüm oluşturun
- Birden çok etikete sahip bir düğüm oluşturun
- Özelliklere sahip bir düğüm oluşturun
- Oluşturulan düğümü döndürmek
Tek bir düğüm oluşturma
Neo4j'de, CREATE yan tümcesi ile birlikte oluşturulacak düğümün adını belirterek bir düğüm oluşturabilirsiniz.
Sözdizimi
Aşağıda, Cypher Query Language kullanarak bir düğüm oluşturmak için sözdizimi verilmiştir.
CREATE (node_name);
Note - Noktalı virgül (;) isteğe bağlıdır.
Misal
Aşağıda, Neo4j'de bir düğüm oluşturan örnek bir Cypher Query verilmiştir.
CREATE (sample)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1 - Neo4j masaüstü uygulamasını açın ve aşağıdaki ekran görüntüsünde gösterildiği gibi Neo4j Sunucusunu başlatın.
Step 2 - Tarayıcınızı açın, aşağıdaki URL'yi kopyalayıp adres çubuğunuza yapıştırın http://localhost:7474/. Bu size Neo4j'nin yerleşik tarayıcı uygulamasını aşağıdaki ekran görüntüsünde gösterildiği gibi bir dolar istemiyle verecektir.
Step 3 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğüm türünün oluşturulmasını doğrulamak için, dolar isteminde aşağıdaki sorguyu yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Birden Fazla Düğüm Oluşturma
Neo4j CQL'in create cümlesi aynı anda birden fazla düğüm oluşturmak için de kullanılır. Bunu yapmak için, oluşturulacak düğümlerin adlarını virgülle ayırarak iletmeniz gerekir.
Sözdizimi
Aşağıda, CREATE yan tümcesini kullanarak birden çok düğüm oluşturmak için sözdizimi verilmiştir.
CREATE (node1),(node2)
Misal
Aşağıda, Neo4j'de birden çok düğüm oluşturan örnek bir Cypher Sorgusu yer almaktadır.
CREATE (sample1),(sample2)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğümün oluşturulduğunu doğrulamak için, dolar komut istemine aşağıdaki sorguyu yazın ve yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Etiketli Bir Düğüm Oluşturma
Neo4j'de bir etiket, düğümleri etiketler kullanarak gruplamak (sınıflandırmak) için kullanılır. Neo4j'de CREATE yan tümcesini kullanarak bir düğüm için bir etiket oluşturabilirsiniz.
Sözdizimi
Cypher Query Language kullanarak etiketli bir düğüm oluşturmak için sözdizimi aşağıdadır.
CREATE (node:label)
Misal
Aşağıda, etiketli bir düğüm oluşturan örnek bir Cypher Sorgusu yer almaktadır.
CREATE (Dhawan:player)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğümün oluşturulduğunu doğrulamak için, dolar komut istemine aşağıdaki sorguyu yazın ve yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Birden Çok Etiketli Düğüm Oluşturma
Ayrıca tek bir düğüm için birden çok etiket oluşturabilirsiniz. Düğüm için etiketleri iki nokta üst üste ":" ile ayırarak belirtmeniz gerekir.
Sözdizimi
Aşağıda, birden çok etikete sahip bir düğüm oluşturmak için sözdizimi verilmiştir.
CREATE (node:label1:label2:. . . . labeln)
Misal
Aşağıda, Neo4j'de birden çok etikete sahip bir düğüm oluşturan örnek bir Cypher Sorgusu yer almaktadır.
CREATE (Dhawan:person:player)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğümün oluşturulduğunu doğrulamak için, dolar komut istemine aşağıdaki sorguyu yazın ve yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Özelliklerle Düğüm Oluşturun
Özellikler, bir düğümün verileri depoladığı anahtar / değer çiftleridir. CREATE yan tümcesini kullanarak özelliklere sahip bir düğüm oluşturabilirsiniz. Bu özellikleri, çiçek ayraçları "{}" içinde virgülle ayırarak belirtmeniz gerekir.
Sözdizimi
Aşağıda, özelliklere sahip bir düğüm oluşturmak için sözdizimi verilmiştir.
CREATE (node:label { key1: value, key2: value, . . . . . . . . . })
Misal
Aşağıda, özelliklere sahip bir düğüm oluşturan örnek bir Cypher Sorgusu yer almaktadır.
CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"})
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğümün oluşturulduğunu doğrulamak için, dolar komut istemine aşağıdaki sorguyu yazın ve yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Oluşturulan Düğümü Geri Verme
Bölüm boyunca, MATCH (n) RETURN noluşturulan düğümleri görüntülemek için sorgu. Bu sorgu, veritabanındaki tüm mevcut düğümleri döndürür.
Bunun yerine, yeni oluşturulan düğümü görüntülemek için CREATE ile RETURN cümlesini kullanabiliriz.
Sözdizimi
Aşağıda, Neo4j'de bir düğüm döndürmek için sözdizimi verilmiştir.
CREATE (Node:Label{properties. . . . }) RETURN Node
Misal
Aşağıda, özelliklere sahip bir düğüm oluşturan ve onu döndüren örnek bir Cypher Sorgusu yer almaktadır.
CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) RETURN Dhawan
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Noe4j'de ilişki, bir grafiğin iki düğümünü birbirine bağladığımız bir öğedir. Bu ilişkilerin yönü, türü ve verilerin biçim kalıpları vardır. Bu bölüm size nasıl yapılacağını öğretir -
- İlişkiler oluşturun
- Mevcut düğümler arasında bir ilişki oluşturun
- Etiket ve özelliklerle bir ilişki oluşturun
İlişkiler Oluşturmak
CREATE cümlesini kullanarak bir ilişki oluşturabiliriz. Aşağıdaki sözdiziminde gösterildiği gibi kısa çizgi “-” ve ok “→” arasına yerleştirildiği ilişkinin yönüne bağlı olarak köşeli parantez “[]” içindeki ilişkiyi belirteceğiz.
Sözdizimi
Aşağıda, CREATE yan tümcesini kullanarak bir ilişki oluşturmak için sözdizimi verilmiştir.
CREATE (node1)-[:RelationshipType]->(node2)
Misal
Öncelikle, aşağıda gösterildiği gibi, veritabanında iki Ind ve Dhawan düğümü oluşturun.
CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"})
CREATE (Ind:Country {name: "India"})
Şimdi, adlı bir ilişki oluşturun BATSMAN_OF bu iki düğüm arasında -
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)
Son olarak, oluşturulan ilişkiyi görmek için her iki düğümü de döndürün.
RETURN Dhawan, Ind
İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Mevcut Düğümler Arasında Bir İlişki Oluşturma
Ayrıca, mevcut düğümler arasında bir ilişki oluşturabilirsiniz. MATCH fıkra.
Sözdizimi
MATCH cümlesini kullanarak bir ilişki oluşturmak için sözdizimi aşağıdadır.
MATCH (a:LabeofNode1), (b:LabeofNode2)
WHERE a.name = "nameofnode1" AND b.name = " nameofnode2"
CREATE (a)-[: Relation]->(b)
RETURN a,b
Misal
Aşağıda, match cümlesini kullanarak bir ilişki oluşturan örnek bir Cypher Query verilmiştir.
MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India"
CREATE (a)-[r: BATSMAN_OF]->(b)
RETURN a,b
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın.
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Etiket ve Özelliklerle İlişki Oluşturma
CREATE yan tümcesini kullanarak etiket ve özelliklerle bir ilişki oluşturabilirsiniz.
Sözdizimi
Aşağıda, CREATE yan tümcesini kullanarak etiket ve özelliklerle bir ilişki oluşturmak için sözdizimi verilmiştir.
CREATE (node1)-[label:Rel_Type {key1:value1, key2:value2, . . . n}]-> (node2)
Misal
Aşağıda, etiket ve özelliklerle bir ilişki oluşturan örnek bir Cypher Sorgusu yer almaktadır.
MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India"
CREATE (a)-[r:BATSMAN_OF {Matches:5, Avg:90.75}]->(b)
RETURN a,b
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Tam Bir Yol Oluşturma
Neo4j'de, sürekli ilişkiler kullanılarak bir yol oluşturulur. Create cümlesi kullanılarak bir yol oluşturulabilir.
Sözdizimi
Aşağıda Neo4j'de CREATE deyimini kullanarak bir yol oluşturmak için sözdizimi verilmiştir.
CREATE p = (Node1 {properties})-[:Relationship_Type]->
(Node2 {properties})[:Relationship_Type]->(Node3 {properties})
RETURN p
Misal
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
MERGE komutu, CREATE komutu ve MATCH komutunun bir kombinasyonudur.
Neo4j CQL MERGE komutu grafikte belirli bir kalıbı arar. Varsa, sonuçları döndürür.
Grafikte YOKSA, yeni bir düğüm / ilişki oluşturur ve sonuçları döndürür.
Bu bölümde nasıl yapılacağını öğreneceksiniz -
- Bir düğümü etiketle birleştir
- Bir düğümü özelliklerle birleştirme
- OnCreate ve OnMatch
- Bir ilişkiyi birleştir
Sözdizimi
MERGE komutunun sözdizimi aşağıdadır.
MERGE (node: label {properties . . . . . . . })
Bu bölümdeki örneklere geçmeden önce, Dhawan ve Ind etiketleriyle veritabanında iki düğüm oluşturun. Aşağıda gösterildiği gibi Dhawan'dan Ind'e “BATSMAN_OF” tipi bir ilişki oluşturun.
CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"})
CREATE (Ind:Country {name: "India"})
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)
Bir Düğümü Etiketle Birleştirme
MERGE yan tümcesini kullanarak, etikete göre veritabanındaki bir düğümü birleştirebilirsiniz. Etikete göre bir düğümü birleştirmeye çalışırsanız, Neo4j verilen etikete sahip herhangi bir düğüm olup olmadığını doğrular. Değilse, mevcut düğüm oluşturulacaktır.
Sözdizimi
Aşağıda bir düğümü bir etikete göre birleştirmek için sözdizimi verilmiştir.
MERGE (node:label) RETURN node
örnek 1
Aşağıda, bir düğümü Neo4j ile birleştiren (etikete göre) örnek bir Cypher Sorgusu bulunmaktadır. Bu sorguyu yürüttüğünüzde Neo4j, etikete sahip herhangi bir düğüm olup olmadığını doğrular.player. Değilse, "Jadeja" adlı bir düğüm oluşturur ve onu döndürür.
Verilen etikete sahip herhangi bir düğüm varsa, Neo4j hepsini döndürür.
MERGE (Jadeja:player) RETURN Jadeja
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Veritabanında "oynatıcı" etiketli "Dhawan" adında bir düğüm oluşturduğunuz için, Neo4j onu aşağıdaki ekran görüntüsünde gösterildiği gibi döndürür.
Örnek 2
Şimdi, "CT2013" adlı bir düğümü Turnuva adlı bir etiketle birleştirmeyi deneyin. Bu etikete sahip düğüm olmadığından, Neo4j verilen isimde bir düğüm oluşturur ve onu döndürür.
MERGE (CT2013:Tournament{name: "ICC Champions Trophy 2013"})
RETURN CT2013, labels(CT2013)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Belirtildiği gibi, verilen etikete (Turnuva) sahip bir düğüm olmadığından. Neo4j, aşağıdaki ekran görüntüsünde gösterildiği gibi belirtilen düğümü oluşturur ve döndürür.
Bir Düğümü Özelliklerle Birleştirme
Ayrıca bir düğümü bir dizi özellik ile birleştirebilirsiniz. Bunu yaparsanız, Neo4j, özellikler de dahil olmak üzere belirtilen düğüm için eşit bir eşleşme arar. Bulamazsa, bir tane yaratır.
Sözdizimi
Bir düğümü özellikleri kullanarak birleştirmek için sözdizimi aşağıdadır.
MERGE (node:label {key1:value, key2:value, key3:value . . . . . . . . })
Misal
Aşağıda, özellikleri kullanarak bir düğümü birleştirmek için örnek bir Cypher Sorgusu verilmiştir. Bu sorgu, özellikleri ve etiketi kullanarak "jadeja" adlı düğümü birleştirmeye çalışır. Kesin etiket ve özelliklere sahip böyle bir düğüm olmadığından, Neo4j bir tane oluşturur.
MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
RETURN Jadeja
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Tartışıldığı gibi, belirtilen etiket ve özelliklere sahip düğüm olmadığından, aşağıdaki ekran görüntüsünde gösterildiği gibi bir tane oluşturur.
OnCreate ve OnMatch
Ne zaman, bir birleştirme sorgusu yürütsek, bir düğüm eşleştirilir veya oluşturulur. Oluşturma ve eşleştirme sırasında kullanarak, düğümün oluşturulduğunu veya eşleştiğini belirtmek için özellikler ayarlayabilirsiniz.
Sözdizimi
Aşağıdaki sözdizimi OnCreate ve OnMatch maddeleri.
MERGE (node:label {properties . . . . . . . . . . .})
ON CREATE SET property.isCreated ="true"
ON MATCH SET property.isFound ="true"
Misal
Aşağıda, Cypher Sorgusu'nun kullanımını gösteren örnek bir OnCreate ve OnMatchNeo4j'deki maddeler. Belirtilen düğüm veritabanında zaten mevcutsa, düğüm eşleştirilir ve düğümde anahtar / değer çifti isFound = "true" olan özellik oluşturulur.
Belirtilen düğüm veritabanında yoksa, düğüm oluşturulur ve içinde anahtar / değer çiftine sahip bir özellik isCreated = "true" oluşturulur.
MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
ON CREATE SET Jadeja.isCreated = "true"
ON MATCH SET Jadeja.isFound = "true"
RETURN Jadeja
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Bahsedildiği gibi, belirtilen ayrıntılara sahip bir düğüm olmadığından, Neo4j onu özellik ile birlikte oluşturduisFound aşağıdaki ekran görüntüsünde gösterildiği gibi.
Bir İlişkiyi Birleştirme
Tıpkı düğümler gibi, MERGE yan tümcesini kullanarak ilişkileri de birleştirebilirsiniz.
Misal
Aşağıda, Neo4j'deki MATCH cümlesini kullanarak bir ilişkiyi birleştiren örnek bir Cypher Query yer almaktadır. Bu sorgu, adlı bir ilişkiyi birleştirmeye çalışırWINNERS_OF "ind" (etiket: Ülke ve isim: Hindistan) ve ICC13 (etiket: Turnuva ve isim: ICC Champions Trophy 2013) düğümleri arasında.
Böyle bir ilişki olmadığı için Neo4j bir tane yaratır.
MATCH (a:Country), (b:Tournament)
WHERE a.name = "India" AND b.name = "ICC Champions Trophy 2013"
MERGE (a)-[r:WINNERS_OF]->(b)
RETURN a, b
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Belirtilen ilişki veritabanında bulunmadığından, Neo4j aşağıdaki ekran görüntüsünde gösterildiği gibi bir ilişki oluşturur.
Aynı şekilde, birden çok ilişkiyi ve yönlendirilmemiş ilişkileri de birleştirebilirsiniz.
Set cümlesini kullanarak, mevcut bir Düğüme veya İlişkiye yeni özellikler ekleyebilir ve ayrıca mevcut Özellikler değerlerini ekleyebilir veya güncelleyebilirsiniz.
Bu bölümde, nasıl yapılacağını tartışacağız -
- Bir mülk ayarla
- Bir mülkü kaldır
- Birden çok özelliği ayarlayın
- Bir düğümde etiket belirleme
- Bir düğümde birden çok etiket ayarlayın
Özellik Ayarlama
SET yan tümcesini kullanarak bir düğümde yeni bir özellik oluşturabilirsiniz.
Sözdizimi
Bir özelliği ayarlamak için sözdizimi aşağıda verilmiştir.
MATCH (node:label{properties . . . . . . . . . . . . . . })
SET node.property = value
RETURN node
Misal
Örneğe geçmeden önce, ilk olarak aşağıda gösterildiği gibi Dhawan adında bir düğüm oluşturun.
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"})
Aşağıda, "187" değerine sahip "en yüksek puan" adlı bir özellik oluşturmak için örnek bir Cypher Sorgusu verilmiştir .
MATCH (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"})
SET Dhawan.highestscore = 187
RETURN Dhawan
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada, "Dhawan" adlı düğümde anahtar / değer çifti en yüksek puanı / 187 olan bir özelliğin oluşturulduğunu gözlemleyebilirsiniz.
Bir Mülkü Kaldırma
Mevcut bir mülkü aktararak kaldırabilirsiniz. NULL değer olarak.
Sözdizimi
Aşağıda, SET yan tümcesi kullanılarak bir düğümden bir özelliği kaldırmanın sözdizimi yer almaktadır.
MATCH (node:label {properties})
SET node.property = NULL
RETURN node
Misal
Örneğe geçmeden önce, ilk olarak aşağıda gösterildiği gibi bir "jadeja" düğümü oluşturun.
Create (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
Aşağıda, aşağıda gösterildiği gibi SET yan tümcesini kullanarak POB adlı özelliği bu düğümden kaldıran örnek bir Cypher Sorgusu verilmiştir.
MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
SET Jadeja.POB = NULL
RETURN Jadeja
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada değişkenin isimli olduğunu gözlemleyebilirsiniz.POB silindi.
Birden Çok Özellik Ayarlama
Aynı şekilde, Set yan tümcesini kullanarak bir düğümde birden çok özellik oluşturabilirsiniz. Bunu yapmak için, bu anahtar-değer çiftlerini virgülle belirtmeniz gerekir.
Sözdizimi
Aşağıda, SET yan tümcesini kullanarak bir düğümde birden çok özellik oluşturmak için sözdizimi verilmiştir.
MATCH (node:label {properties})
SET node.property1 = value, node.property2 = value
RETURN node
Misal
Aşağıda, Neo4j'deki SET cümlesini kullanarak bir düğümde birden çok özellik oluşturan örnek bir Cypher Query verilmiştir.
MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988})
SET Jadeja.POB: "NavagamGhed", Jadeja.HS = "90"
RETURN Jadeja
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada POB ve HS adlı özelliklerin yaratıldığını görebilirsiniz.
Düğümde Etiket Ayarlama
SET yan tümcesini kullanarak mevcut bir düğüme bir etiket ayarlayabilirsiniz.
Sözdizimi
Mevcut bir düğüme bir etiket ayarlamak için sözdizimi aşağıdadır.
MATCH (n {properties . . . . . . . })
SET n :label
RETURN n
Misal
Örneğe geçmeden önce, ilk olarak aşağıda gösterildiği gibi bir "Anderson" düğümü oluşturun.
CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})
Aşağıda, SET yan tümcesini kullanarak bir düğümde bir etiket ayarlamak için örnek bir Cypher Sorgusu yer almaktadır. Bu sorgu, Anderson düğümüne "oynatıcı" etiketini ekler ve onu döndürür.
MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})
SET Anderson: player
RETURN Anderson
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada "player" adlı etiketin düğüme eklendiğini görebilirsiniz.
Bir Düğümde Birden Çok Etiket Ayarlama
SET yan tümcesini kullanarak var olan bir düğüme birden çok etiket ayarlayabilirsiniz. Burada iki nokta üst üste “:” ile ayırarak etiketleri belirlemeniz gerekir.
Sözdizimi
Aşağıda, SET yan tümcesini kullanarak birden çok etiketi mevcut bir düğüme ayarlamak için sözdizimi verilmiştir.
MATCH (n {properties . . . . . . . })
SET n :label1:label2
RETURN n
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi ilk olarak "Ishant" adında bir düğüm oluşturun.
CREATE (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
Aşağıda, SET yan tümcesini kullanarak bir düğüm üzerinde birden çok etiket oluşturmak için kullanılan örnek bir Cypher Sorgusu verilmiştir.
MATCH (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
SET Ishant: player:person
RETURN Ishant
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada, adlı düğüme iki etiketin (kişi ve oyuncu) eklendiğini görebilirsiniz.Ishant.
DELETE yan tümcesini kullanarak bir veritabanından düğümleri ve ilişkileri silebilirsiniz.
Tüm Düğümleri ve İlişkileri Silme
Aşağıda, DELETE yan tümcesini kullanarak veritabanındaki tüm düğümleri ve ilişkileri silme sorgusu yer almaktadır.
Sorgu
MATCH (n) DETACH DELETE n
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Bu, tüm düğümleri ve ilişkileri neo4j veritabanınızdan silecek ve boş hale getirecektir.
Belirli Bir Düğümü Silme
Belirli bir düğümü silmek için, yukarıdaki sorguda "n" yerine düğümün ayrıntılarını belirtmeniz gerekir.
Sözdizimi
Aşağıda, DELETE yan tümcesini kullanarak belirli bir düğümü Neo4j'den silmek için sözdizimi verilmiştir.
MATCH (node:label {properties . . . . . . . . . . })
DETACH DELETE node
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi Neo4j veritabanında bir "Ishant" düğümü oluşturun.
CREATE (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
Aşağıda, DELETE deyimini kullanarak yukarıda oluşturulan düğümü silen örnek bir Cypher Sorgusu yer almaktadır.
MATCH (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
DETACH DELETE Ishant
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada belirtilen düğümün silindiğini gözlemleyebilirsiniz.
REMOVE yan tümcesi, özellikleri ve etiketleri grafik öğelerinden (Düğümler veya İlişkiler) kaldırmak için kullanılır.
Neo4j CQL DELETE ve REMOVE komutları arasındaki temel fark -
- DELETE işlemi, düğümleri ve ilişkili ilişkileri silmek için kullanılır.
- KALDIR işlemi, etiketleri ve özellikleri kaldırmak için kullanılır.
Bir Mülkü Kaldırma
REMOVE yan tümcesiyle birlikte MATCH kullanarak bir düğümün özelliğini kaldırabilirsiniz.
Sözdizimi
Aşağıda, REMOVE yan tümcesini kullanarak bir düğümün bir özelliğini kaldırmak için sözdizimi verilmiştir.
MATCH (node:label{properties . . . . . . . })
REMOVE node.property
RETURN node
Misal
Örneğe geçmeden önce adında bir düğüm oluşturun Dhoni Aşağıda gösterildiği gibi.
CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
Aşağıda, REMOVE yan tümcesini kullanarak yukarıda oluşturulan düğümü kaldırmak için örnek bir Cypher Sorgusu yer almaktadır.
MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
REMOVE Dhoni.POB
RETURN Dhoni
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada POB adlı düğümün silindiğini görebilirsiniz.
Düğümden Etiket Kaldırma
Özelliğe benzer şekilde, remove cümlesini kullanarak da mevcut bir düğümden bir etiketi kaldırabilirsiniz.
Sözdizimi
Bir etiketi düğümden kaldırmak için sözdizimi aşağıdadır.
MATCH (node:label {properties . . . . . . . . . . . })
REMOVE node:label
RETURN node
Misal
Aşağıda, remove cümlesini kullanarak mevcut bir düğümden bir etiketi kaldırmak için örnek bir Cypher Sorgusu yer almaktadır.
MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
REMOVE Dhoni:player
RETURN Dhoni
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada, etiketin düğümden silindiğini görebilirsiniz.
Birden Fazla Etiketi Kaldırma
Ayrıca mevcut bir düğümden birden fazla etiketi kaldırabilirsiniz.
Sözdizimi
Aşağıda, bir düğümden birden çok etiketi kaldırmak için sözdizimi verilmiştir.
MATCH (node:label1:label2 {properties . . . . . . . . })
REMOVE node:label1:label2
RETURN node
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi bir düğüm Ishant oluşturun.
CREATE (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
Aşağıda, bir düğümden birden çok etiketi kaldırmak için örnek bir Cypher Sorgusu verilmiştir.
MATCH (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"})
REMOVE Ishant:player:person
RETURN Ishant
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada belirtilen etiketlerin düğümden silindiğini görebilirsiniz.
FOREACH yan tümce, bir yolun bileşenleri veya bir toplama sonucu olsun, bir liste içindeki verileri güncellemek için kullanılır.
Sözdizimi
FOREACH cümlesinin sözdizimi aşağıdadır.
MATCH p = (start node)-[*]->(end node)
WHERE start.node = "node_name" AND end.node = "node_name"
FOREACH (n IN nodes(p)| SET n.marked = TRUE)
Misal
Örneğe geçmeden önce bir yol oluşturun p Neo4j veritabanında aşağıda gösterildiği gibi.
CREATE p = (Dhawan {name:"Shikar Dhawan"})-[:TOPSCORRER_OF]->(Ind{name:
"India"})-[:WINNER_OF]->(CT2013{name: "Champions Trophy 2013"})
RETURN p
Aşağıda, FOREACH cümlesini kullanarak yol boyunca tüm düğümlere bir özellik ekleyen örnek bir Cypher Sorgusu yer almaktadır.
MATCH p = (Dhawan)-[*]->(CT2013)
WHERE Dhawan.name = "Shikar Dhawan" AND CT2013.name = "Champions Trophy 2013"
FOREACH (n IN nodes(p)| SET n.marked = TRUE)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Düğümün oluşturulduğunu doğrulamak için, dolar komut istemine aşağıdaki sorguyu yazın ve yürütün.
MATCH (n) RETURN n
Bu sorgu, veritabanındaki tüm düğümleri döndürür (bu sorguyu ilerleyen bölümlerde ayrıntılı olarak tartışacağız).
Yürütüldüğünde, bu sorgu oluşturulan düğümü aşağıdaki ekran görüntüsünde gösterildiği gibi gösterir.
Bu bölümde, Match Clause ve bu cümle kullanılarak gerçekleştirilebilecek tüm işlevler hakkında bilgi edineceğiz.
Eşleşmeyi Kullanan Tüm Düğümleri Alın
Neo4j'nin MATCH yan tümcesini kullanarak Neo4j veritabanındaki tüm düğümleri alabilirsiniz.
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi 3 düğüm ve 2 ilişki oluşturun.
CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
CREATE (Ind:Country {name: "India", result: "Winners"})
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"})
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013)
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})
CREATE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
CREATE (Dhawan)-[:TOP_SCORER_OF {Runs:363}]->(Ind)
CREATE (Jadeja)-[:HIGHEST_WICKET_TAKER_OF {Wickets:12}]->(Ind)
Aşağıda, Neo4j veritabanındaki tüm düğümleri döndüren sorgu verilmiştir.
MATCH (n) RETURN n
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Tüm Düğümleri Belirli Bir Etiket Altında Alma
Match cümlesini kullanarak, tüm düğümleri belirli bir etiket altında alabilirsiniz.
Sözdizimi
Tüm düğümleri belirli bir etiket altında almak için sözdizimi aşağıdadır.
MATCH (node:label)
RETURN node
Misal
Aşağıda, veritabanındaki tüm düğümleri etiketinin altında döndüren örnek bir Cypher Sorgusu yer almaktadır. player.
MATCH (n:player)
RETURN n
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
İlişkiye Göre Maç
MATCH yan tümcesini kullanarak ilişkiye dayalı olarak düğümleri alabilirsiniz.
Sözdizimi
Aşağıda, MATCH cümlesini kullanan ilişkiye dayalı olarak düğümlerin alınmasının sözdizimi verilmiştir.
MATCH (node:label)<-[: Relationship]-(n)
RETURN n
Misal
Aşağıda, MATCH cümlesini kullanarak ilişkiye dayalı olarak düğümleri almak için örnek bir Cypher Sorgusu verilmiştir.
MATCH (Ind:Country {name: "India", result: "Winners"})<-[: TOP_SCORER_OF]-(n)
RETURN n.name
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Tüm Düğümleri Sil
MATCH cümlesini kullanarak tüm düğümleri silebilirsiniz.
Sorgu
Aşağıda, Neo4j'deki tüm düğümleri silme sorgusu yer almaktadır.
MATCH (n) detach delete n
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
OPTIONAL MATCH cümleci tümce, desenin eksik kısımları için boş karakterleri kullanırken, içinde açıklanan deseni aramak için kullanılır.
İSTEĞE BAĞLI MATCH, eşleşme cümlesine benzer, tek fark, modelin eksik kısımlarının bir sonucu olarak boş döndürmesidir.
Sözdizimi
Aşağıda, İSTEĞE BAĞLI MAÇ ile ilişki sözdizimi verilmiştir.
MATCH (node:label {properties. . . . . . . . . . . . . .})
OPTIONAL MATCH (node)-->(x)
RETURN x
Misal
Aşağıda ICCT2013 düğümünden ilişkileri almaya çalışan örnek bir Cypher Sorgusu yer almaktadır. Böyle bir düğüm olmadığından boş döndürür.
MATCH (a:Tornament {name: "ICC Champions Trophy 2013"})
OPTIONAL MATCH (a)-->(x)
RETURN x
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada, gerekli kalıp için eşleşme olmadığından Neo4j'in boş döndürdüğünü görebilirsiniz.
SQL gibi, Neo4j CQL bir MATCH Sorgusunun sonuçlarını filtrelemek için CQL MATCH komutunda WHERE cümlesi sağlamıştır.
Sözdizimi
WHERE cümlesinin sözdizimi aşağıdadır.
MATCH (label)
WHERE label.country = "property"
RETURN label
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi veritabanında beş düğüm oluşturun.
CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222,
country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})
Aşağıda, WHERE cümlesini kullanarak Hindistan ülkesine ait tüm oyuncuları (düğümleri) döndüren örnek bir Cypher Sorgusu yer almaktadır.
MATCH (player)
WHERE player.country = "India"
RETURN player
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Birden Çok Koşul İçeren NEREDE Maddesi
Birden çok koşulu doğrulamak için WHERE yan tümcesini de kullanabilirsiniz.
Sözdizimi
Aşağıda, Neo4j'de birden çok koşulla WHERE yan tümcesini kullanmak için sözdizimi verilmiştir.
MATCH (emp:Employee)
WHERE emp.name = 'Abc' AND emp.name = 'Xyz'
RETURN emp
Misal
Aşağıda, iki koşul kullanarak Neo4j veritabanındaki düğümleri filtreleyen örnek bir Cypher Sorgusu yer almaktadır.
MATCH (player)
WHERE player.country = "India" AND player.runs >=175
RETURN player
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Where Clause ile İlişkiyi Kullanma
İlişkileri kullanarak düğümleri filtrelemek için Where cümlesini de kullanabilirsiniz.
Misal
Veritabanında aşağıdaki grafiğin olduğunu varsayalım.
Aşağıda, aşağıda gösterildiği gibi WHERE cümlesini kullanarak Hindistan'ın en iyi skorunu elde etmek için örnek bir Cypher Sorgusu verilmiştir.
MATCH (n)
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"})
RETURN n
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada Neo4j'nin, TOP_SCORER_OF ilişkisine sahip olan düğümü Hindistan adında düğümün bulunduğu ülkeye döndürdüğünü görebilirsiniz.
Veritabanında aşağıdaki ayrıntılarla bir grafik oluşturduğumuzu varsayalım.
Miktar
count() işlevi satır sayısını saymak için kullanılır.
Sözdizimi
Aşağıda count işlevinin sözdizimi verilmiştir.
MATCH (n { name: 'A' })-->(x)
RETURN n, count(*)
Misal
Aşağıda, Cypher Sorgusu'nun kullanımını gösteren örnek bir count() işlevi.
Match(n{name: "India", result: "Winners"})--(x)
RETURN n, count(*)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Grup Sayısı
COUNT yan tümce, ilişki türlerinin gruplarını saymak için de kullanılır.
Misal
Aşağıda, her ilişkiye katılan düğümlerin sayısını sayan ve döndüren örnek bir Cypher Sorgusu yer almaktadır.
Match(n{name: "India", result: "Winners"})-[r]-(x)
RETURN type (r), count(*)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
RETURN yan tümcesi Neo4j'de dönüş düğümleri, ilişkiler ve özellikler kullanılır. Bu bölümde, nasıl yapılacağını öğreneceğiz -
- Dönüş düğümleri
- Birden çok düğüm döndür
- Dönüş ilişkileri
- Mülkleri döndür
- Tüm öğeleri döndür
- Sütun takma adıyla bir değişken döndür
Dönen Düğümler
RETURN yan tümcesini kullanarak bir düğümü döndürebilirsiniz.
Sözdizimi
Aşağıda, RETURN yan tümcesini kullanarak düğümleri döndürmek için bir sözdizimi verilmiştir.
Create (node:label {properties})
RETURN node
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi 3 düğüm ve 2 ilişki oluşturun.
Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
CREATE (Ind:Country {name: "India", result: "Winners"})
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"})
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013)
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)
Aşağıda, Dhoni adında bir düğüm oluşturan ve onu döndüren örnek bir Cypher Sorgusu verilmiştir.
Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
RETURN Dhoni
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Birden Çok Düğümü Geri Verme
Ayrıca return cümlesini kullanarak birden çok düğümü de döndürebilirsiniz.
Sözdizimi
Aşağıda, dönüş cümlesini kullanarak birden çok düğümü döndürmek için sözdizimi verilmiştir.
CREATE (Ind:Country {name: "India", result: "Winners"})
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"})
RETURN Ind, CT2013
Misal
Aşağıda, dönüş cümlesini kullanarak birden çok düğümü döndürmek için örnek bir Cypher Sorgusu verilmiştir.
CREATE (Ind:Country {name: "India", result: "Winners"})
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"})
RETURN Ind, CT2013
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız. Burada Neo4j'nin 2 düğüm döndürdüğünü görebilirsiniz.
Dönen İlişkiler
Return yan tümcesini kullanarak ilişkileri de döndürebilirsiniz.
Sözdizimi
RETURN deyimini kullanarak ilişkileri döndürmek için sözdizimi aşağıdadır.
CREATE (node1)-[Relationship:Relationship_type]->(node2)
RETURN Relationship
Misal
Aşağıda, iki ilişki oluşturan ve bunları döndüren örnek bir Cypher Sorgusu yer almaktadır.
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013)
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)
RETURN r1, r2
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Dönen Özellikler
RETURN yan tümcesini kullanarak da özellikleri döndürebilirsiniz.
Sözdizimi
Aşağıda, RETURN yan tümcesini kullanarak özellikleri döndürmek için bir sözdizimi verilmiştir.
Match (node:label {properties . . . . . . . . . . })
Return node.property
Misal
Aşağıda, bir düğümün özelliklerini döndürmek için örnek bir Cypher Sorgusu verilmiştir.
Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
Return Dhoni.name, Dhoni.POB
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Tüm Öğeleri Geri Verme
RETURN deyimini kullanarak Neo4j veritabanındaki tüm öğeleri döndürebilirsiniz.
Misal
Aşağıda, veritabanındaki tüm öğeleri döndürmek için örnek bir Cypher Query verilmiştir.
Match p = (n {name: "India", result: "Winners"})-[r]-(x)
RETURN *
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Sütun Diğer Adıyla Bir Değişkeni Döndürme
Neo4j'de RETURN yan tümcesini kullanarak takma ada sahip belirli bir sütunu döndürebilirsiniz.
Misal
Aşağıda, POB sütununu Doğum Yeri olarak döndüren örnek bir Cypher Sorgusu yer almaktadır.
Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
Return Dhoni.POB as Place Of Birth
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
ORDER BY yan tümcesini kullanarak sonuç verilerini sırayla düzenleyebilirsiniz.
Sözdizimi
ORDER BY yan tümcesinin sözdizimi aşağıdadır.
MATCH (n)
RETURN n.property1, n.property2 . . . . . . . .
ORDER BY n.property
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi Neo4j veritabanında 5 düğüm oluşturun.
CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
Aşağıda, ORDERBY cümlesini kullanarak oyuncu tarafından puanlanan çalıştırmaların sırasına göre yukarıda oluşturulan düğümleri döndüren örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Düğümleri Birden Çok Özelliğe Göre Sıralama
Düğümleri birden çok özelliğe göre düzenleyebilirsiniz. ORDEYBY fıkra.
Sözdizimi
Aşağıda, ORDERBY yan tümcesi kullanılarak düğümleri birden çok özelliğe göre düzenlemek için sözdizimi verilmiştir.
MATCH (n)
RETURN n
ORDER BY n.age, n.name
Misal
Aşağıda, bu bölümde daha önce oluşturulan düğümleri özelliklere (çalıştırmalara ve ülkeye) göre düzenleyen örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
RETURN n.name, n.runs, n.country
ORDER BY n.runs, n.country
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Düğümleri Azalan Sıraya Göre Sıralama
Bir veritabanındaki düğümleri azalan sırayla düzenleyebilirsiniz. ORDERBY fıkra.
Sözdizimi
Aşağıda, bir veritabanındaki düğümleri düzenlemek için sözdizimi verilmiştir.
MATCH (n)
RETURN n
ORDER BY n.name DESC
Misal
Aşağıda, ORDERBY cümlesini kullanarak bir veritabanındaki düğümleri azalan sırada düzenleyen örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs DESC
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
limit yan tümce, çıktıdaki satır sayısını sınırlamak için kullanılır.
Sözdizimi
LIMIT cümlesinin sözdizimi aşağıdadır.
MATCH (n)
RETURN n
ORDER BY n.name
LIMIT 3
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi Neo4j veritabanında 5 düğüm oluşturun.
CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
Aşağıda, yukarıda oluşturulan düğümleri azalan sırada döndüren ve sonuçtaki kayıtları 3 ile sınırlayan örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs DESC
LIMIT 3
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
İfade ile sınırla
LIMIT yan tümcesini ifade ile de kullanabilirsiniz.
Misal
Aşağıda, bir ifade kullanarak kayıtları sınırlandıran örnek bir Cypher Sorgusu verilmiştir.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs DESC
LIMIT toInt(3 * rand())+ 1
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
SKIP deyimi, çıktıdaki satırlar dahil olmak üzere hangi satırdan başlayacağını tanımlamak için kullanılır.
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi 5 düğüm oluşturun.
CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
Aşağıda, ilk 3 düğümü atlayarak veritabanındaki tüm düğümleri döndüren örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs DESC
SKIP 3
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
İfade Kullanarak Atla
Bir ifade kullanarak bir sonucun kayıtlarını atlayabilirsiniz.
Misal
Aşağıda, bir ifade ile birlikte SKIP yan tümcesini kullanan örnek bir Cypher Sorgusu verilmiştir.
MATCH (n)
RETURN n.name, n.runs
ORDER BY n.runs DESC
SKIP toInt (2*rand())+ 1
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
WITH yan tümcesini kullanarak sorgu sanatlarını birbirine zincirleyebilirsiniz.
Sözdizimi
Aşağıdaki, WITH cümlesinin sözdizimidir.
MATCH (n)
WITH n
ORDER BY n.property
RETURN collect(n.property)
Misal
Aşağıda, WITH cümlesinin kullanımını gösteren örnek bir Cypher Sorgusu yer almaktadır.
MATCH (n)
WITH n
ORDER BY n.name DESC LIMIT 3
RETURN collect(n.name)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Çözme yan tümcesi, bir listeyi bir dizi satıra ayırmak için kullanılır.
Misal
Aşağıda, bir listeyi açan örnek bir Cypher Query verilmiştir.
UNWIND [a, b, c, d] AS x
RETURN x
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
SQL gibi, Neo4J CQL de gerekli sonuçları elde etmek için CQL Sorgularında kullanmak üzere bir dizi String işlevi sağlamıştır.
Burada, bazı önemli ve sık kullanılan işlevleri tartışacağız.
Dize İşlevleri Listesi
Aşağıda Neo4j'de öne çıkan String işlevlerinin listesi yer almaktadır.
Sr.No | İşlev ve Açıklama |
---|---|
1 | ÜST Tüm harfleri büyük harflere dönüştürmek için kullanılır. |
2 | DÜŞÜK Tüm harfleri küçük harflere dönüştürmek için kullanılır. |
3 | ALT STRING Belirli bir String'in alt dizesini elde etmek için kullanılır. |
4 | Replace Bir alt dizeyi belirli bir Dize alt dizesiyle değiştirmek için kullanılır. |
SQL gibi, Neo4j CQL de RETURN yan tümcesinde kullanılmak üzere bazı toplama işlevleri sağlamıştır. SQL'deki GROUP BY deyimine benzer.
Bu RETURN + Aggregation Functions in MATCH komutunu bir grup düğüm üzerinde çalışmak ve bazı toplanmış değerler döndürmek için kullanabiliriz.
TOPLAMA İşlevleri Listesi
Aşağıda Neo4j'deki toplama işlevlerinin listesi verilmiştir.
Sr.No | İşlev ve Açıklama |
---|---|
1 | MİKTAR MATCH komutu tarafından döndürülen satır sayısını döndürür. |
2 | MAX MATCH komutu tarafından döndürülen bir dizi satırdan maksimum değeri döndürür. |
3 | MIN MATCH komutu tarafından döndürülen bir dizi satırdan minimum değeri döndürür. |
4 | SUM MATCH komutu ile döndürülen tüm satırların toplam değerini döndürür. |
5 | AVG MATCH komutu ile döndürülen tüm satırların ortalama değerini döndürür. |
Gerçek zamanlı uygulamalarda, uygulama veritabanımızın yedeğini düzenli olarak almalıyız, böylece herhangi bir arıza noktasında bazı çalışma koşullarını geri yükleyebiliriz.
Bu kural hem RDBMS hem de NoSQL veritabanları için geçerlidir.
Bu bölümde, iki önemli DBA görevi hakkında tartışacağız.
- Neo4j Veritabanı nasıl yedeklenir.
- Neo4j Veritabanını belirli bir yedeğe geri yükleme.
Note- Bu adımlar yalnızca Windows İşletim Sistemi için geçerlidir. Diğer işletim sistemlerinde aynı adımları uygulamak için benzer türden komutlar kullanmalıyız.
Neo4j Veritabanı Yedeklemesi
Step 1 - Aşağıdaki yolu kullanarak "Neo4j Topluluğu" nu tıklayın -
Windows "Başlat" düğmesi → "Tüm Programlar" → "Neo4j Topluluğu" → "Neo4j Topluluğu"
Varsayılan olarak seçer c:\Users\[username]\Documents\Neo4j\default.graphdb. Ancak dilersek, yolu farklı bir dizine değiştirebiliriz.
Step 2 - Burada Neo4j Veritabanı klasörümüze geçtik.
C: \ Ne04j2.0db
Step 3 - "Başlat" düğmesini tıklayın.
Sunucu başladığında, Neo4j Veritabanı dosyalarımızın belirli bir dizinde oluşturulduğunu görebiliriz.
Bir veritabanı yedeklemesi almadan önce yapmamız gereken ilk ve en önemli şey Neo4j Veritabanı sunucusunu kapatmaktır.
Step 4 - Sunucuyu kapatmak için "Durdur" düğmesine tıklayın.
Neo4j Veritabanı dosyaları C: \ Ne04j2.0db adresinde mevcuttur
Step 5 - Komut istemini açın.
Step 6 - C: \ Neo4j'de "Neo4jDbBackup-01" klasörü oluşturun (Bu, dosya sisteminizdeki herhangi bir konum olabilir).
mkdir C:\Neo4j\Neo4jDbBackup-01
Belirtilen dosya sistemi konumunda "C: \ Neo4j \" yeni bir "Neo4jDbBackup-01" klasörü oluşturur.
Step 7 - Aşağıdaki komutu yazın ve Enter tuşuna basın.
copy C:\Ne04j2.0db C:\Neo4j\Neo4jDbBackup-01
Bu, dosyalarımızın gerekli hedef klasöre kopyalandığı anlamına gelir. Bu klasöre erişin ve klasörün veritabanı dosyalarımıza sahip olduğunu gözlemleyin.
Step 8 - Veritabanı klasörümüzü sıkıştırmak için WinZip, 7 Zip veya WinRAR gibi herhangi bir Windows sıkıştırma / açma aracını kullanın.
Step 9- Şimdi Neo4jDbBackup-01.zip dosyamız oluşturuldu. Dosya sisteminizde herhangi bir bellek kısıtlaması varsa, "C: \ Neo4j \" konumundaki "Neo4jDbBackup-01" klasörünü kaldırın.
Neo4j Veritabanı Geri Yükleme
Step 1- Veritabanı sunucusunu kapatın. Sunucuyu kapatmak için lütfen önceki adımlara bakın.
Step 2 - Mevcut veritabanı klasörünü boşaltın.
Step 3 - Yedek klasörümüzü açmak için WinZip, 7 Zip veya WinRar gibi herhangi bir Windows sıkıştırma / açma aracını kullanın.
Step 4 - Komut istemini açın ve aşağıdaki komutu yürütün.
Copy C:\Neo4j\Neo4jDbBackup-01 C:\Ne04j2.0db
Artık veritabanı klasörümüzün çalışan yedekleme dosyalarını içerdiğini gözlemleyebiliriz.
Step 5 - "Başlat" düğmesine tıklayarak sunucuyu başlatın.
Step 6 - Veritabanımızı düzgün şekilde geri yükleyip yüklemediğimizi doğrulamak için bazı MATCH + RETURN komutlarını yürütün.
Neo4j SQL, uygulamanın performansını artırmak için düğüm veya ilişki özelliklerinde Dizinleri destekler. Aynı etiket adına sahip tüm düğümler için özelliklerde indeksler oluşturabiliriz.
Bu indekslenmiş sütunları MATCH veya WHERE veya IN operatöründe CQL komutunun çalışmasını iyileştirmek için kullanabiliriz.
Bu bölümde, nasıl yapılacağını tartışacağız -
- Bir Dizin Oluşturun
- Bir Dizini Silme
Bir Dizin Oluşturma
Neo4j CQL, Düğüm veya İlişki özelliklerinde dizinler oluşturmak için "CREATE INDEX" komutu sağlar.
Sözdizimi
Aşağıda Neo4j'de bir dizin oluşturmak için sözdizimi verilmiştir.
CREATE INDEX ON:label (node)
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi bir Dhawan düğümü oluşturun.
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})
Aşağıda, Neo4j'deki Dhawan düğümünde bir dizin oluşturmak için örnek bir Cypher Sorgusu yer almaktadır.
CREATE INDEX ON:player(Dhawan)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ Aşağıda gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Bir Dizini Silme
Neo4j CQL, bir Node veya Relationshis özelliğinin mevcut bir dizinini bırakmak için bir "DROP INDEX" komutu sağlar.
Sözdizimi
Aşağıda Neo4j'de bir dizin oluşturmak için sözdizimi verilmiştir.
DROP INDEX ON:label(node)
Misal
Aşağıda, Neo4j'de "Dhawan" adlı düğümde bir dizin oluşturmak için örnek bir Cypher Sorgusu yer almaktadır.
DROP INDEX ON:player(Dhawan)
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Neo4j veritabanında, CQL CREATE komutu her zaman yeni bir düğüm veya ilişki oluşturur, yani aynı değerleri kullansanız bile yeni bir satır ekler. Bazı düğümler veya ilişkiler için uygulama gereksinimlerimize göre, bu yinelemeden kaçınmalıyız. Bunun için, bir düğümün veya ilişkinin bir veya daha fazla özelliği üzerinde kural oluşturmak için bazı veritabanı kısıtlamaları kullanmalıyız.
SQL gibi, Neo4j veritabanı da düğüm veya ilişki özelliklerinde EŞSİZ kısıtlamayı destekler. UNIQUE kısıtlaması, yinelenen kayıtlardan kaçınmak ve veri bütünlüğü kuralını uygulamak için kullanılır.
BENZERSİZ Kısıtlama Oluşturun
Neo4j CQL, düğüm veya ilişki özelliklerinde benzersiz kısıtlamalar oluşturmak için "CREATE CONSTRAINT" komutu sağlar.
Sözdizimi
Aşağıda Neo4j'de bir EŞSİZ kısıtlama oluşturmak için sözdizimi verilmiştir.
MATCH (root {name: "Dhawan"})
CREATE UNIQUE (root)-[:LOVES]-(someone)
RETURN someone
Misal
Örneğe geçmeden önce, aşağıda gösterildiği gibi 4 düğüm oluşturun.
CREATE(Dhawan:player{id:001, name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})
CREATE(Jonathan:player {id:002, name: "Jonathan Trott", YOB: 1981, POB: "CapeTown"})
CREATE(Sangakkara:player {id:003, name: "Kumar Sangakkara", YOB: 1977, POB: "Matale"})
CREATE(Rohit:player {id:004, name: "Rohit Sharma", YOB: 1987, POB: "Nagpur"})
CREATE(Virat:player {id:005, name: "Virat Kohli", YOB: 1988, POB: "Delhi"})
Aşağıda, Neo4j kullanarak mülk kimliği üzerinde EŞSİZ bir kısıtlama oluşturmak için örnek bir Cypher Sorgusu verilmiştir.
CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.
Doğrulama
Şimdi, yedek kimlik değerine sahip başka bir düğüm eklemeyi deneyin. Burada id ile bir düğüm oluşturmaya çalışıyoruz002.
CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})
Bu sorguyu yürütürseniz, aşağıdaki ekran görüntüsünde gösterildiği gibi bir hata mesajı alırsınız.
Önceki bölümde örneklerle UNIQUE kısıtlama işlemleri oluşturmayı zaten tartışmıştık. Bu bölümde, UNIQUE kısıtlama işleminin kaldırılmasını örneklerle tartışacağız.
Neo4j CQL, bir düğüm veya ilişki özelliğinden mevcut Benzersiz kısıtlamayı silmek için "DROP CONSTRAINT" komutu sağlar.
Sözdizimi
Aşağıda Neo4j'de bir EŞSİZ kısıtlamayı kaldırmak için sözdizimi verilmiştir.
DROP CONSTRAINT ON (node:label)
ASSERT node.id IS UNIQUE
Misal
Aşağıda, mülk üzerindeki UNIQUE kısıtlamasını kaldırmak için örnek bir Cypher Sorgusu verilmiştir. id.
DROP CONSTRAINT ON (n:player)
ASSERT n.id IS UNIQUE
Yukarıdaki sorguyu yürütmek için aşağıdaki adımları uygulayın -
Step 1- Neo4j masaüstü Uygulamasını açın ve Neo4j Sunucusunu başlatın. URL'yi kullanarak Neo4j'nin yerleşik tarayıcı uygulamasını açınhttp://localhost:7474/ aşağıdaki ekran görüntüsünde gösterildiği gibi.
Step 2 - İstediğiniz sorguyu dolar istemine kopyalayıp yapıştırın ve aşağıdaki ekran görüntüsünde vurgulanan oynat düğmesine (sorguyu yürütmek için) basın.
Sonuç
Çalıştırma sırasında aşağıdaki sonucu alacaksınız.