Kurulum ve bağlantı işlemleri için önceki yazılara okuyabilirsiniz: [1] [2] [3].
Solarium PHP ya da diğer kütüphaneler fark etmez; Solr’a yeni veriler eklemek için öncelikle Solr’ın gelecek verilere neye göre sınıflandırdığını öğrenmek gerekir.
Solr dökümanları, barındıracağı verilerin tüm detaylarını içeren bir XML dosyası üzerinden (schema.xml) kontrol edilmekte. Bahsi geçen schema.xml dosyası solr dizininde, kullandığınız core klasörü içerisindedir: “solr/core0/schema.xml“. Şemayı düzenlemek için temel XML bilgisi yeterlidir.
Değiştirilmemiş bir schema.xml dosyası, yorum satırlarını göz ardı edersek aşağıdakine benzemektedir:
Sık kullandığımız MySQL, PostgreSQL veritabanlarında olduğu gibi, Solr’da da field yani kolonlar mevcut. Bu kolonların, Solr’a özel birçok tip tanımın da bulunmakta. Tamamını bilmeniz gerekmiyor, gereken yerde kullanmanız daha uygun olacaktır. Bahsedilen tiplerin isimleri ve detayları:
Geçelim schema.xml’in detaylarına:
Kullanılacak her field type için
[code]<types></types>[/code]içerisinde tanımlama yapmak gerekiyor. Örnek olarak koyduğum schema’da yalnızca bir field type tanımı -string- bulunmakta.
Kaydedilecek verileri uniqueleştirecek -dolasıyla required- bir alan belirlemek amaçlı olarak id isimli bir field ve geri kalanlar için de type, name isimli fieldlar bulunmakta.
Ardından belirtilen field typelari kullanarak field tanımlamaları gelmekte. Burada id isimli fieldın aynı zamanda, diğer fieldlardan farklı olarak required olduğuna dikkat.
Field tanımlarından sonra dökümantasyonun benzersizliğini -unique- sağlayan field tanımını yapılmakta. Bu döküman için id olduğunu daha önce belirtmiştim. Solr’ın asıl amacı olan arama işlemi için varsayılan field ismi de defaultSearchField ile belirtilmekte.
Son olarak, yapılan sorgular için kullanılacak operatör tanımı geliyor.
Solr’a yeni bir döküman eklerken tüm alanların doldurulması gerekmez. Yalnızca required olan alanı içeren bir dökümantan da Solr’a eklenebilir. Solr üzerinde XML Post ederek yapılacak arasında Add/Replace, Commit, Delete işlemleri vardır.
Solr’da düzenleme yerine, düzenlenecek olan dökümanın unique alanı kullanılarak yeniden ekleme kullanılır. Teorik olarak değiştirme işlemi bulunmamaktadır. Commit işlemi, Solr üzerinde yapılan değişikliklerden sonra, bu işlemlerin doğrulanması için yapılacak işlemdir. Büyük boyutlu dökümantasyonlarda Commit işlemi saat, değişiklik gibi çeşitli kıstaslara bağlanabilir.
Bahsettiğim tüm bu işlemler hem url üzerinden, hem de Solr&PHP kütüphaneleri üzerinden yapılabilmektedir.
Bir sonraki yazıda, bu schema’yı kullanarak çeşitli işlemler yapacağız.
Görselin kaynağı ve detaylar: http://lucidworks.lucidimagination.com/display/solr/Solr+Field+Types
[…] Önceki yazıda Solr’ın dökümantasyon yapısından, veri tiplerinden ve diğer detaylardan bahsetmiştim. […]