Solr’a Döküman Ekleme #2

S

Önceki yazıda Solr’ın dökümantasyon yapısından, veri tiplerinden ve diğer detaylardan bahsetmiştim.

Bu bilgiler doğrultusunda, Solr’a yeni veriler eklemeye geçebiliriz.

Önce Solr bağlantısı sağlayalım (detaylar):

[code lang=”php”] $options = array(
‘hostname’ => ‘127.0.0.1’,
‘port’ => 8080,
);
try {
$client = new SolrClient($options);
$pingResponse = $client->ping();

if($pingResponse->success()) {
echo ‘Ping başarılı, bağlantı kuruldu.’;
}
} catch (SolrClientException $exc) {
echo ‘Ping başarısız, kontrol et.’;
}
[/code]

Devamında ise yeni bir SolrInputDocument oluşturup, açılan bağlantı üzerinden Solr’a ekleyelim.

[code lang=”php”]

$solr_doc = new SolrInputDocument();
$solr_doc->addField(‘id’, 1);
$solr_doc->addField(‘name’, ‘Ogulcan Orhan’);
$client->addDocument($solr_doc, TRUE); // True override doğrulaması için gereklidir.
[/code]

Kodlar hatasız da çalışsa, yeni dökümanı görüntülemek henüz mümkün değil. Önceki yazıda da belirttiğim gibi, eklenen dökümanları bir de Commit etmek gerekmektedir. Aksi halde Solr bunları sonuçlara yansıtmayacaktır.

Commit için eklemelerden sonra:

[code lang=”php”] $client -> commit();
[/code]

Commit işlemini genelleştirmek için, commit.php isminde yeni bir dosya oluşturarak get ile istediğiniz Solr’a bağlanan ve yalnızca commit eden bir fonksiyon yazabilirsiniz. Bu şekilde aktif ve yüklü olarak kullanılan Solr çekirdekleri için zamanlanmış (cron job) işlemler de atayabilirsiniz. Tabii bu başlı başına ayrı bir yazı konusu olur, olacak da.

Son olarak açtığımız bağlantı üzerinden, birden fazla döküman ekleyerek yazıyı tamamlayalım.

[code lang=”php”]

$names = array("Ali", "Ahmet", "Mehmet", "Necdet", "Şevket");

$solr_doc = new SolrInputDocument();
for ($index = 0; $index < count($names); $index++) {
$solr_doc->addField(‘id’, $index);
$solr_doc->addField(‘name’, $names[$index]);
$client->addDocument($solr_doc, TRUE);
$solr_doc->reset();
}

$client->commit();

[/code]

Burada tek dikkat edilmesi gereken nokta, her $client->addDocument() isteğinden sonra, eldeki $solr_doc’ı resetlemeyi unutmamak.

İşlemlerden sonra Solr’ı çalıştırdığınızda karşınıza şöyle bir ekran gelecektir:

Sorularınızı, yorumlar aracılığıyla gönderebilirsiniz.

1 Yorum

özgür için bir yanıt yazın Yorumu iptal et

  • selam, yazılarınız çok açıklayıcı, bir çok dosyayı indexledikten sonra index üzerinde aramayı nasıl yapıyoruz, php ile oluşturulan bir arayüzle mi?

Oğulcan

Arşivler

Kategoriler