BilgiTeknoloji.net    
b i l g i   t e k n o l o j i   y a z ı l ı m

Ana Sayfa

Marjinal XML Access Pratik Uygulamalar Projeler Ekonometri Dilimiz Çetrefil İletişim
 

Sitenizi Dizin Hizmeti (Indexing Service) Arasın

İnternet sitenizi aramak için dosyaları birer birer incelemek yerine Windows ile hazır gelen Dizin Hizmetini (Indexing Service) kullanın. Sadece internet sayfalarında değil, Office belgelerinde de, NT 4.0 ve Windows 2000 ile gelen bu hizmet birimi yardımıyla ADO'yu kullanarak arama yaptırabilirsiniz.

  • Dizin Hizmetini siteyi aramak için yapılandırmak
  • Dizin katalogları oluşturmak
  • ASP'de ADO'yu kullanarak Dizin Hizmetini sorgulamak
  • Arama uyumluluğu oranlarını listelemek

Indexing Service web sitelerinde ve bilgisayarlarda arama ve sorgulama yapmak için tasarlanmış güçlü bir araç. Bu servise ADO ile bir bağlantı açıp kataloglar içinde arama yaptırılabiliyor. Bu, ADO’nun standart veritabanı dışında olan kataloglarda da arama yapabildiği anlamına geliyor.

Indexing Service, belgelerin içerikleriyle beraber, başlıklarını, hatta Office belgelerini de tarayabiliyor. Farklı dosya türleri için elliden fazla veri alanına göre sorgu yaptırılabiliyor.

ADO ile bağlandıktan sonra gelişmiş SQL cümleleri ile sayfalarda arama yapmak olanaklı. Buna FreeText, yani serbest metin arama yöntemleri de dahil. Bununla birlikte belgelerin arama kriterine uyma oranını da elde edebilirsiniz. Örneğin Microsoft’un sitesinde arama sonuçlarının yanında gösterilen yüzdelik değerler gibi. SQL cümlelerinde WHERE koşullarını belirtirken dosya türlerini, boyutlarını, konumlarını, uygunluk oranlarını denetledikten sonra sonuç listesini oluşturabilirsiniz.

Sitedeki tüm dosyalar Indexing Service kataloglarında arşivleniyor. Her zaman olmasa da belli periyotlarda bu katalogları yeniden yapılandırmak gerekebilir.

Dizin Hizmeti ayarlarına Windows 2000’de Computer Management (Bilgisayar Yönetimi) bölümünden ulaşabilirsiniz. Indexing Service’in NT 4.0’daki adı ise Index Server. Diğer yönetim araçlarının bulunduğu bölümden ulaşılabiliyor.


Service and Applications altında Indexing Service yolu yoksa Denetim Masası’nda Program Ekle/Kaldır altındaki Windows Bileşenleri bölümünden Indexing Service’i kurmalısınız. NT 4.0 için Option Pack CD’sinden kurmak gerekiyor.



Kurulum tamamlandıktan sonra Computer Management bölümünde, Services and Applications altında Indexing Service ağacı belirecek. Çoğunlukla geçerli olarak C:\Inetpub altında Web adlı bir katalog oluşturuluyor.


DİZİN KATALOGLARINI YAPILANDIRIN

Indexing Service’in işleyişi bir katalog (yani veritabanı) dosyası oluşturmakla başlıyor ve kataloğun içine arama yapılacak klasörleri eklemek gerekiyor. Bu klasörlerin aynı bilgisayar üzerinde olmasına gerek yok. Yerel ağdaki başka bilgisayarlarda bulunan klasörleri kataloglara dahil etmek mümkün. Web sitesinin içeriğini birden fazla bilgisayarda tutanlar için faydalı.

Bir katalog oluşturmak için Indexing Service ağacı altında iken Action / New / Catalog menüsünü kullanın. Kataloğu oluştururken belirtilen klasör, indekslenecek olan değil, kataloğa ait veritabanının kaydedileceği klasördür. Burada tanımlanan isim sorgulama esnasında kullanılacak.

İndekslenecek klasörler, kataloğun altındaki Directories bölümünde seçiliyor. Yani bu, web sitenizin tamamını ya da bir bölümünü indeksleyebileceksiniz demek.




Seçmek istediğiniz klasör başka bir bilgisayar üzerinde ise Alias(UNC) kutusunu doldurun. Bu tür işlemlerden sonra servisi kapayıp yeniden açmanız gerekebilir. Bazı değişiklikler hemen aktif olmayabiliyor.



Bu servisin kendi yönetim sayfasında sorgulama bölümü var. Kataloglardan hemen sorgulama yapabilmek için Computer Management ekranında Query the Catalog sayfası kullanılabilir.



Bu sayfa birçok bilgisayarda problemli. Hatta gördüğümüz kadarıyla bu sayfanın çalışanına raslamadık. Geçerli olarak, bir şekilde arama sonuçları listelenemiyor. MSDN sitesinde bu problemin çözümüne raslayamadığımız için çözümü bulmak epey zor oldu.



Bu sorgulama sayfası Winnt\Help\ciquery.htm dosyasının kendisi aslında. Bu dosyanın çalışan ve Türkçeleştirdiğimiz halini CD’mizde bulabilirsiniz. Her ihtimale karşı ciquery.htm dosyasının orjinalinin yedeğini aldıktan sonra, CD’de verdiğimiz düzeltilmiş dosyayı bunun üzerine kopyalayabilirsiniz. Bu işlem esnasında Computer Management’ta sorgulama sayfası açıksa sayfayı yenilemek için F5’e basın.

Indexing Service’in sitenizdeki gizli saklı herşeyinizi bulabileceğini unutmayın. Bir süre önce Türkiye’deki büyük bir haber sitesinde, bazı kullanıcı adı ve parolaların bulunduğu bir dosyayı, sitenin kendi arama sayfasında görüntülemiştik. Sıkça kullanılan bazı önemli bilgiler ve parolalar, sitenin içinde yer alan bu dosyaya kaydedildiği için gizli bilgilere bu şekilde ulaşılması iyi olmadı.

Bu durumda web sitenizin içine, hiçbir yerden link vermediğinizi düşünüp özel belgelerinizi koymanız pek akıllıca olmayacaktır. Aynı şekilde dosyaların kopyalarını site içinde bırakmanız, arama yapan ziyaretçilerin karşısına dosyalarınızın ulşaılmaması gereken eski sürümlerinin ya da “copy(2) of default.asp” gibi dosya isimlerinin çıkmasına neden olabilir.


SİTENİZİ ADO İLE ARAYIN

ADO, Indexing Service’i sorgulayıp gelişmiş bir arama sayfası üretmek için yeterli olabilir. Bilgisayardaki MSIDXS dağıtıcısına bir bağlantı açıp buradaki katalogları sorgulayabilir. Aşağıdaki örnek basit bir sorgu sayfası ile serbest metin aramak için yeterlidir.
 

	dim cnindex
	set cnindex=createobject("adodb.connection")
	cnindex.open "provider=msidxs; data source=web"
	
	dim rsindex
	set rsindex=createobject("adodb.recordset")
	rsindex.open "SELECT rank, doctitle, vpath, filename FROM SCOPE() " & _
				"WHERE FREETEXT('" & kriter & "') > 0" & _
					"ORDER BY Rank DESC", cnindex,1,3

	dim i, toplam
	toplam=0
	do while not rsindex.eof
		toplam=toplam+1
		response.write "Sıra=" & toplam & ""
		for i=0 to rsindex.fields.count-1
			response.write rsindex.fields(i).name & "= " & rsindex(i) & ""
		next
		response.write ""
		rsindex.movenext
	loop
	
	rsindex.close
	cnindex.close
	set rsindex=nothing
	set cnindex=nothing

Ek: Düzeltilmiş ciquery.htm dosyası. (Winnt\Help\ciquery.htm)
(Bu dosyayı belirtilen konumda var olan dosyanın yedeğini aldıktan sonra üzerine kopyalayabilirsiniz.)


Gelecek ay:
Dizin Hizmeti ile kendi veritabanınızı birleştirin.
 

Serkan ŞAHİNOĞLU
(Chip Dergisi, Şubat 2002)


http://BilgiTeknoloji.net