YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak

14 views
Skip to first unread message

Erdem Bener

unread,
Jun 19, 2013, 4:22:59 PM6/19/13
to bnr...@googlegroups.com
Abi ellerine saglik.

Bir blog kurup bu tarz paylasimlari daha fazla kisiyle paylassak nasil olur?

Bence bircok kaynaktan daha faydali bir kaynak olur.



-------- Orjinal mesaj --------
Kimden: Abdulkadir Bener <abdulka...@gmail.com>
Tarih:
Alıcı: bnr...@googlegroups.com
Konu: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak


İşinize yarar mı bilmem; ama bu yazıyı hazırlamak geldi içimden.
 
Yakın zamanda uyguladığım için işlemle ilgili deneyimimi paylaşmak istedim.
Dokümanları SQL içine kaydetmek, ardından doküman içinde geçen kelimelere göre arama yaparak bir tür kütüphane oluşturmak nasıl bir işlem gerektirir tam olarak bununla ilgili biraz bilgi paylaşmak istiyorum.
 
Önce ihtiyacı biraz daha netleştirelim.
 
SharePoint'i biliriz hepimiz. Çok başarılı bir doküman arşivleme altyapısı da vardır. Dosyayı upload edersiniz. Sonra bir "ARAMA" yaparsınız bir de bakıverirsiniz ki dokümanlarınızın içinde geçen kelimeleri bir çırpıda bulup getirmiş karşınıza ve ilgili dokümanlar anında ekranınızda.
 
Peki bu nasıl oluyor da DOC, XLS, PDF, TXT vs. dosyalar SQL içinde kaydedilirken içeriğine göre indeksleniyor ve SELECT sorguları kullanılarak hemen aradığımızı bulabiliyoruz.
 
İşlem biraz uğraştırıcı ama sonuçlarına değer.
 
Ön gereksinimler:
 
Öncelikle bu iş için SQL 2012 öneririm, en azından SQL 2008 R2 olmasında yarar var. SQL 2012 öneririm zira kelimeleri ararken Türkçe wordbreaker kullanılabiliyor, ve semantic arama fonksiyonu sayesinde birbirine benzeyen dokümanlar tespit edilebiliyor. Bu başka bir yazının konusu olsun.
 
SQL Server kurulum yapılırken Full-Text servislerini kurmuş olmalıyız, veya sonradan bu servisler eklenmiş olmalıdır.
 
İlgili sunucuda Windows Indexing servisleri mutlaka çalışıyor olmalı. SQL Server dokümanları indekslemek için işletim sisteminin indexing servislerinden yararlanmaktadır.
 
Normal şartlarda 150'den fazla doküman türü Wİndows Indexing servisleri tarafından (ve dolayısıyla SQL tarafından) indekslenebilmektedir. Ancak PDF dokümanlarla ilgili bir sıkıntı da mevcuttur. PDF Adobe ürünü olduğu için Adobe firmasının yazdığı filtre kullanılmalıdır. Tam bu noktada çok dikkatli olunması gereken bir ayrıntıdan bahsetmem lazım:
 
Adobe'un Acrobat'ını kurduğunuzda normalde indexing servisi pdf dokümanları indeksler ama eğer SQL'iniz 64 bit ise bu filtre maalesef işe yaramamaktadır. Aşağıda bunu nasıl aşacağınızdan başlayarak işlemleri adım adım açıklamaya çalıştım.
 
Umarım faydalı olur.,.
 
(1)
SQL'inizin 64 bit olduğunu varsayarak 64 bit PDF filtresi için
http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=4025&fileID=3941
Bu dosyayı indirip kurun derim. Sunucuda bir şekilde Acrobat Reader varsa ilk önce bunu kaldırmanız gerekecek.
 
(2)
My Computer (Bilgisayarım) sağ tıklayın Properties (Özellikler) i açın.
System Properties (Sistem Özellikleri)'ni açıp Advanced (Gelişmiş) sekmesine geçin.
Alttaki listeden "Path" değişkenini bulup Edit (Düzenle) ile açın.
Kutudaki yazının sonuna noktalı virgül koyup (;) yeni bir path olarak
C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin
ekleyin ve kaydederek kapatın.
 
(3)
Bu adımda önce SQL servisini restart edip işletim sisteminde tanımlı indeks filtrelerinin SQL'e yüklenmesini sağlamalıyız:

exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;
 
(4)
SELECT * FROM sys.fulltext_document_types WHERE document_type='.pdf'
Bu sorguyu çalıştırdığınızda sonuç geliyorsa kurulum tamamlanmıştır.
Görünmüyorsa önce SQL Server'ı yeniden başlatıp yeniden sorgulayın.
Hala göremiyorsanız sunucuyu yeniden başlatıp tekrar sorgulayın.
Buna rağmen göremiyorsanız "Adobe PDF iFilter" programını uninstall edip
yeniden kurun ve 2.adımdan tekrar deneyin. Unutmayın SQL ve iFilter her ikisi de 64 bit olmalı.
 
(5)
Aşağıdaki komutları çalıştırıp bir veritabanı ve tablo hazırlayın:
CREATE DATABASE TEST
GO
USE TEST
GO
CREATE TABLE [dbo].[testdosyalar](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [aciklama] [nvarchar](200) NULL,
 [uzanti] [varchar](50) NULL,
 [dosya] [varbinary](max) NULL,
 CONSTRAINT [PK_testdosyalar] PRIMARY KEY CLUSTERED ([id] ASC) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
 
(6)
SQL Server Management Studio ile TEST veritabanına bağlanın.
testdosyalar tablosunu sağ tıklayın "Full Text Index" altındaki
"Define Full Text Index" seçeneğini tıklayın.
Next tuşu ile "Select Table Columns" ekranına kadar gelin.
"dosya" yazan satırı işaretleyip "Language for word breaker" kolonunu "Turkish" yapın.
(Not: SQL 2012'de "Turkish" var ancak 2008'de yoktur, 2008'de "Neutral" seçin veya boş bırakın)
"Type" kolonunu "uzanti" yapın. Type kolonuna dosyaların uzantısını kaydetmek zorundayız.
Böylece SQL Server kelimeleri ayıklarken dosyanın tipini bilmiş olacak ve ona göre kelimeleri ayıklayacak.
SQL 2012'de bu ekranda bir de "Statistical Semantics" kolonu gelir. İşaretlerseniz
birbirine içerik olarak çok benzeyen veya aynı olan dokümanların tespiti mümkün olur.
Next ile devam edip "Select Change Tracking" seçeneğini "Automatically" olarak bırakın.
Next ile devam edip "Create a new catalog" seçili hale getirin.
New catalog kutusuna name alanına "testdosyalarcatalog" yazın.
"Accent sensitivity" seçeneğini "Sensitive" bırakın.
Türkçe aksanlı bir dil olmadığı için (yazıldığı gibi okunan bir dil olduğundan) buradaki
Accent Sensitive ayarının önemi de yok aslında.
Index filegroup seçeneğini dilerseniz ayarlayabilirsiniz.
Full-text stoplist default olarak <system> seçilidir. Bunu <off> yaparsanız tüm kelimeler indekslenir.
Ancak <system> bırakırsanız çok genel olan ve birkaç harften oluşan kelimeler indekslenmez.
Mesela one two three gibi kelimeler indekslenmez.
Next ile devam edip "schedule" ekranına gelin.
Katalog veya bu tablo için belirli aralıklarla indeksleme için zamanlayıcı ayarı
yapabilirsiniz.
Next ile devam edip "Finish" ile ayarlamayı bitirin.
 
(6)
Artık deneme için bir kayıt üretebiliriz. C sürücüsünde TEMP klasörü altında MySQL 5.6 kullanım
kılavuzu pdf dökümanının olduğunu varsayarak komutu aşağıdaki gibi yazıp çalıştırabiliriz.
DECLARE @pdf AS VARBINARY(MAX)
SELECT @pdf = CAST(BULKCOLUMN AS VARBINARY(MAX))
FROM OPENROWSET(BULK 'C:\TEMP\Refman-5.6-en.a4.pdf',SINGLE_BLOB) AS X
INSERT INTO testdosyalar (aciklama,uzanti,dosya)
SELECT 'My SQL 5.6 Kullanım Kılavuzu','.pdf', @pdf
 
(7)
Kontrol edip bir satır pdf dokümanın tabloda olduğundan emin olun:
SELECT * FROM testdosyalar
 
(8)
Bir iki dakika bekleyin ve katalogun güncellendiğinden emin olun ve
aşağıdaki komutla PDF dosya içinde arama yapabildiğinizi görmek için test yapın:
SELECT * FROM testdosyalar
WHERE CONTAINS(dosya,'MySQL')
 
(9)
Sonuç gelmiyorsa fulltext katalog güncellenmemiş demektir.
Manuel güncelleme için şunu çalıştırın:
USE TEST
GO
ALTER FULLTEXT INDEX ON testdosyalar START FULL POPULATION
GO
 
Bu komut sonunda aşağıdaki hata geliyorsa servisi restart edip yeniden 8.maddeyi deneyin.
Mesaj:
Warning: Request to start a full-text index population on table or
indexed view 'testdosyalar' is ignored because a population is currently
active for this table or indexed view.
 
8.Maddedeki sorgu sonuç veriyorsa işlem tamam demektir.
Full Text sorgulama ile ilgili komutlar için BooksOnline'dan yardım alabilirsiniz.
 
(10)
Hayırlı olsun.

Not: Dokümanları varbinary(MAX) alana SQL'in içine değil de FILESTREAM ile disk sisteminde tutmak arasında burada anlatılan işlemler açısından fark oluşmaz. SQL her ikisini de FullText ile indeksleyebilir.
 
Saygılar...

--
Bu e-postayı Google Grupları'ndaki "bnr_net" adlı gruba abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için bnr_net+u...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
 
 

Tufan Dayi

unread,
Jun 20, 2013, 1:24:15 AM6/20/13
to bnr...@googlegroups.com
Erdem hocaya katılıyorum bunlar son derece önemli ve değerli bilgiler, share point üzerinde çok gelişmiş bir arama özelliği var bundan daha başarılısını yapan fast search diye bir üründe var yanlış bilmiyorsam lisans ücreti 100.000$ :) turkcell in sitesi şuan share point üzerinde kurulu çalışıyor ve fast search denen ürünü kullanıyor.

Elinize sağlık teşekkürler.


Date: Wed, 19 Jun 2013 23:22:59 +0300
Subject: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak
From: erdem...@gmail.com
To: bnr...@googlegroups.com

Abdulkadir Bener

unread,
Jun 20, 2013, 1:58:51 AM6/20/13
to bnr...@googlegroups.com
Blog kurma fikri güzel bir fikir.
Dilerseniz bir alan adı belirleyelim ve hemen hosting işini halledeyim.
Grup üyesi herkesi de editör yapalım.
Hızla büyüyen kaliteli bir kaynak site olabiliriz, neden olmasın?
 
Alan adı önerileri olan var mı?
 


20 Haziran 2013 08:24 tarihinde Tufan Dayi <td...@hotmail.com> yazdı:

Tufan Dayi

unread,
Jun 20, 2013, 2:06:55 AM6/20/13
to bnr...@googlegroups.com
1. www.ozhakikiburakselimsenyurt.com
2. www.burakselimsenyurtozlem.com


Date: Thu, 20 Jun 2013 08:58:51 +0300
Subject: Re: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak
From: abdulka...@gmail.com
To: bnr...@googlegroups.com

Abdulkadir Bener

unread,
Jun 20, 2013, 2:20:47 AM6/20/13
to bnr...@googlegroups.com
:))
 
Süpermiş.
 
Ben ciddi bir isim önereyim: Baktım şu an alınabiliyormuş:
 
 
bannerda Cem Karaca'nın meşhur şarkısından bir alıntı:
"Hava bedava, su bedava, bilgi bedava..."
 
 


20 Haziran 2013 09:06 tarihinde Tufan Dayi <td...@hotmail.com> yazdı:

Tufan Dayi

unread,
Jun 20, 2013, 2:43:55 AM6/20/13
to bnr...@googlegroups.com
www.beyinbedava.com daha iyi olabilir. Sloganda; ne hamallık edecem attım siteye duruyor.


Date: Thu, 20 Jun 2013 09:20:47 +0300

Erdem Bener

unread,
Jun 20, 2013, 2:44:43 AM6/20/13
to bnr...@googlegroups.com

:)

 

Benim oyum bilgibedava dan yana.

Tufan Dayi

unread,
Jun 20, 2013, 2:55:39 AM6/20/13
to bnr...@googlegroups.com
yazılım dışında da bilgiler yer alacaksa olabilir. bildiğiniz gibi sitenin google aramalarında da üst sıralarda olması için içeriğin domain adında geçmesi faydalıdır. misal; yazilimsozluk.com gibi bir alan adı sizi başlara çekebilir. içeriğide sözlük edasında olursa daha keyifli olabilir. yaz geç, yaz geç....


To: bnr...@googlegroups.com
Subject: RE: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak
Date: Thu, 20 Jun 2013 09:44:43 +0300

Erdem Bener

unread,
Jun 20, 2013, 3:13:17 AM6/20/13
to bnr...@googlegroups.com

Bence isme çok fazla takılmadan aksiyona geçilmeli. İsim daha sonra değiştirilebilir de.

Bismillah deyip başlayalım derim. Detaylara takılıp amaçtan uzaklaşmayalım bence.

Yılmaz Kirlikaya

unread,
Jun 20, 2013, 4:03:04 AM6/20/13
to bnr...@googlegroups.com

Bilgibedava.com alındı. W2008 + SQL2012 Sunucu hazır. Hadi faaliyete geçin.

Gavurun dediği gibi “dont speak about it do it”

Tufan Dayi

unread,
Jun 20, 2013, 4:31:11 AM6/20/13
to bnr...@googlegroups.com
Yılmaz bey, sunucu bulutda  felan mı? yoksa hosting mi?


To: bnr...@googlegroups.com
Subject: RE: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak
Date: Thu, 20 Jun 2013 11:03:04 +0300

İbrahim Bener

unread,
Jun 20, 2013, 4:32:21 AM6/20/13
to bnr...@googlegroups.com
ma��allah h�zl�s�n�z,
camiam�za hay�rl� olsun...


-------- Original Message --------
Subject: Re: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak
From: Y�lmaz Kirlikaya <yil...@nbt.com.tr>
To: bnr...@googlegroups.com
Date: 20.06.2013 11:03:04

Bilgibedava.com al�nd�. W2008 + SQL2012 Sunucu haz�r. Hadi faaliyete ge�in.

Gavurun dedi�i gibi “dont speak about it do it”

�


Sent: Thursday, June 20, 2013 10:13 AM
To: bnr...@googlegroups.com

Subject: RE: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak

�

Bence isme �ok fazla tak�lmadan aksiyona ge�ilmeli. �sim daha sonra de�i�tirilebilir de.

Bismillah deyip ba�layal�m derim. Detaylara tak�l�p ama�tan uzakla�mayal�m bence.

�


Sent: Thursday, June 20, 2013 9:56 AM
To: bnr...@googlegroups.com

Subject: RE: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak

�

yaz�l�m d���nda da bilgiler yer alacaksa olabilir. bildi�iniz gibi sitenin google aramalar�nda da �st s�ralarda olmas� i�in i�eri�in domain ad�nda ge�mesi faydal�d�r. misal; yazilimsozluk.com gibi bir alan ad� sizi ba�lara �ekebilir. i�eri�ide s�zl�k edas�nda olursa daha keyifli olabilir. yaz ge�, yaz ge�....


From: erdem...@gmail.com
To: bnr...@googlegroups.com
Subject: RE: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak
Date: Thu, 20 Jun 2013 09:44:43 +0300

:)

�

Benim oyum bilgibedava dan yana.

�

�

�


Sent: Thursday, June 20, 2013 9:44 AM
To: bnr...@googlegroups.com

Subject: RE: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak

�

www.beyinbedava.com daha iyi olabilir. Sloganda; ne hamall�k edecem att�m siteye duruyor.


Date: Thu, 20 Jun 2013 09:20:47 +0300

Subject: Re: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak
From: abdulka...@gmail.com
To: bnr...@googlegroups.com

:))

�

S�permi�.

�

Ben ciddi bir isim �nereyim: Bakt�m �u an al�nabiliyormu�:

�

�

bannerda Cem Karaca'n�n me�hur �ark�s�ndan bir al�nt�:

"Hava bedava, su bedava, bilgi bedava..."

�

�

�

20 Haziran 2013 09:06 tarihinde Tufan Dayi <td...@hotmail.com> yazd�:

Date: Thu, 20 Jun 2013 08:58:51 +0300

Subject: Re: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak
From: abdulka...@gmail.com
To: bnr...@googlegroups.com

�

Blog kurma fikri g�zel bir fikir.

Dilerseniz bir alan ad� belirleyelim ve hemen hosting i�ini halledeyim.

Grup �yesi herkesi de edit�r yapal�m.

H�zla b�y�yen kaliteli bir kaynak site olabiliriz, neden olmas�n?

�

Alan ad� �nerileri olan var m�?

�

�

20 Haziran 2013 08:24 tarihinde Tufan Dayi <td...@hotmail.com> yazd�:

Erdem hocaya kat�l�yorum bunlar son derece �nemli ve de�erli bilgiler, share point �zerinde �ok geli�mi� bir arama �zelli�i var bundan daha ba�ar�l�s�n� yapan fast search diye bir �r�nde var yanl�� bilmiyorsam lisans �creti 100.000$ :) turkcell in sitesi �uan share point �zerinde kurulu �al���yor ve fast search denen �r�n� kullan�yor.

Elinize sa�l�k te�ekk�rler.


Date: Wed, 19 Jun 2013 23:22:59 +0300

Subject: YNT: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak
From: erdem...@gmail.com
To: bnr...@googlegroups.com



Abi ellerine saglik.

�

Bir blog kurup bu tarz paylasimlari daha fazla kisiyle paylassak nasil olur?

�

Bence bircok kaynaktan daha faydali bir kaynak olur.




-------- Orjinal mesaj --------
Kimden: Abdulkadir Bener <abdulka...@gmail.com>
Tarih:

Al�c�: bnr...@googlegroups.com
Konu: PDF DOC XLS vs. Dok�manlar� SQL ��inde �ndekslemek ve ��erik Aramas� Yapmak

��inize yarar m� bilmem; ama bu yaz�y� haz�rlamak geldi i�imden.

�

Yak�n zamanda uygulad���m i�in i�lemle ilgili deneyimimi payla�mak istedim.

Dok�manlar� SQL i�ine kaydetmek, ard�ndan�dok�man i�inde ge�en kelimelere g�re arama yaparak bir t�r k�t�phane olu�turmak nas�l bir i�lem gerektirir tam olarak bununla ilgili biraz bilgi payla�mak istiyorum.

�

�nce ihtiyac� biraz daha netle�tirelim.

�

SharePoint'i biliriz hepimiz. �ok ba�ar�l� bir dok�man ar�ivleme altyap�s� da vard�r. Dosyay� upload edersiniz. Sonra bir "ARAMA" yapars�n�z bir de bak�verirsiniz ki dok�manlar�n�z�n i�inde ge�en kelimeleri bir ��rp�da bulup getirmi� kar��n�za ve ilgili dok�manlar an�nda ekran�n�zda.

�

Peki bu nas�l oluyor da DOC, XLS, PDF, TXT vs. dosyalar SQL i�inde kaydedilirken i�eri�ine g�re indeksleniyor ve SELECT sorgular� kullan�larak hemen arad���m�z� bulabiliyoruz.

�

��lem biraz u�ra�t�r�c� ama sonu�lar�na de�er.

�

�n gereksinimler:

�

�ncelikle bu i� i�in SQL 2012 �neririm, en az�ndan SQL 2008 R2 olmas�nda yarar var. SQL 2012 �neririm�zira kelimeleri ararken T�rk�e wordbreaker kullan�labiliyor, ve semantic arama fonksiyonu sayesinde birbirine benzeyen dok�manlar tespit edilebiliyor. Bu ba�ka bir yaz�n�n konusu olsun.

�

SQL Server kurulum yap�l�rken Full-Text servislerini kurmu� olmal�y�z, veya sonradan bu servisler eklenmi� olmal�d�r.

�

�lgili sunucuda Windows Indexing servisleri mutlaka �al���yor olmal�. SQL Server dok�manlar� indekslemek i�in i�letim sisteminin indexing servislerinden yararlanmaktad�r.

�

Normal �artlarda 150'den fazla dok�man t�r� W�ndows Indexing servisleri taraf�ndan (ve dolay�s�yla SQL taraf�ndan) indekslenebilmektedir. Ancak PDF dok�manlarla ilgili bir s�k�nt� da mevcuttur. PDF Adobe �r�n� oldu�u i�in Adobe firmas�n�n yazd��� filtre kullan�lmal�d�r. Tam bu noktada �ok dikkatli olunmas� gereken bir ayr�nt�dan bahsetmem laz�m:

�

Adobe'un Acrobat'�n� kurdu�unuzda normalde indexing servisi pdf dok�manlar� indeksler ama e�er SQL'iniz 64 bit ise bu filtre maalesef i�e yaramamaktad�r. A�a��da bunu nas�l a�aca��n�zdan ba�layarak i�lemleri ad�m ad�m a��klamaya �al��t�m.

�

Umar�m faydal� olur.,.

�

(1)

SQL'inizin 64 bit oldu�unu varsayarak 64 bit PDF filtresi i�in
http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=4025&fileID=3941
Bu dosyay� indirip kurun derim. Sunucuda bir �ekilde Acrobat Reader varsa ilk �nce bunu kald�rman�z gerekecek.

�

(2)
My Computer (Bilgisayar�m) sa� t�klay�n Properties (�zellikler) i a��n.
System Properties (Sistem �zellikleri)'ni a��p Advanced (Geli�mi�) sekmesine ge�in.
Alttaki listeden "Path" de�i�kenini bulup Edit (D�zenle) ile a��n.
Kutudaki yaz�n�n sonuna noktal� virg�l koyup (;) yeni bir path olarak


C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin

ekleyin ve kaydederek kapat�n.

�

(3)

Bu ad�mda �nce SQL servisini restart edip i�letim sisteminde tan�ml� indeks filtrelerinin SQL'e y�klenmesini sa�lamal�y�z:


exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;

�

(4)
SELECT * FROM sys.fulltext_document_types WHERE document_type='.pdf'

Bu sorguyu �al��t�rd���n�zda sonu� geliyorsa kurulum tamamlanm��t�r.
G�r�nm�yorsa �nce SQL Server'� yeniden ba�lat�p yeniden sorgulay�n.
Hala g�remiyorsan�z sunucuyu yeniden ba�lat�p tekrar sorgulay�n.
Buna ra�men g�remiyorsan�z "Adobe PDF iFilter" program�n� uninstall edip
yeniden kurun ve 2.ad�mdan tekrar deneyin. Unutmay�n SQL ve iFilter her ikisi de 64 bit olmal�.

�

(5)
A�a��daki komutlar� �al��t�r�p bir veritaban� ve tablo haz�rlay�n:


CREATE DATABASE TEST
GO
USE TEST
GO
CREATE TABLE [dbo].[testdosyalar](

�[id] [int] IDENTITY(1,1) NOT NULL,
�[aciklama] [nvarchar](200) NULL,
�[uzanti] [varchar](50) NULL,
�[dosya] [varbinary](max) NULL,
�CONSTRAINT [PK_testdosyalar] PRIMARY KEY CLUSTERED ([id] ASC) ON [PRIMARY]


) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

�

(6)
SQL Server Management Studio ile TEST veritaban�na ba�lan�n.
testdosyalar tablosunu sa� t�klay�n "Full Text Index" alt�ndaki
"Define Full Text Index" se�ene�ini t�klay�n.
Next tu�u ile "Select Table Columns" ekran�na kadar gelin.
"dosya" yazan sat�r� i�aretleyip "Language for word breaker" kolonunu "Turkish" yap�n.
(Not: SQL 2012'de "Turkish" var ancak 2008'de yoktur, 2008'de "Neutral" se�in veya bo� b�rak�n)
"Type" kolonunu "uzanti" yap�n. Type kolonuna dosyalar�n uzant�s�n� kaydetmek zorunday�z.
B�ylece SQL Server kelimeleri ay�klarken dosyan�n tipini bilmi� olacak ve ona g�re kelimeleri ay�klayacak.
SQL 2012'de bu ekranda bir de "Statistical Semantics" kolonu gelir. ��aretlerseniz
birbirine i�erik olarak �ok benzeyen veya ayn� olan dok�manlar�n tespiti m�mk�n olur.
Next ile devam edip "Select Change Tracking" se�ene�ini "Automatically" olarak b�rak�n.
Next ile devam edip "Create a new catalog" se�ili hale getirin.
New catalog kutusuna name alan�na "testdosyalarcatalog" yaz�n.
"Accent sensitivity" se�ene�ini "Sensitive" b�rak�n.
T�rk�e aksanl� bir dil olmad��� i�in (yaz�ld��� gibi okunan bir dil oldu�undan) buradaki
Accent Sensitive ayar�n�n �nemi de yok asl�nda.
Index filegroup se�ene�ini dilerseniz ayarlayabilirsiniz.
Full-text stoplist default olarak <system> se�ilidir. Bunu <off> yaparsan�z t�m kelimeler indekslenir.
Ancak <system> b�rak�rsan�z �ok genel olan ve birka� harften olu�an kelimeler indekslenmez.


Mesela one two three gibi kelimeler indekslenmez.

Next ile devam edip "schedule" ekran�na gelin.
Katalog veya bu tablo i�in belirli aral�klarla indeksleme i�in zamanlay�c� ayar�
yapabilirsiniz.
Next ile devam edip "Finish" ile ayarlamay� bitirin.

�

(6)
Art�k deneme i�in bir kay�t �retebiliriz. C s�r�c�s�nde TEMP klas�r� alt�nda MySQL 5.6 kullan�m
k�lavuzu pdf d�k�man�n�n oldu�unu varsayarak komutu a�a��daki gibi yaz�p �al��t�rabiliriz.

DECLARE @pdf AS VARBINARY(MAX)
SELECT @pdf = CAST(BULKCOLUMN AS VARBINARY(MAX))
FROM OPENROWSET(BULK 'C:\TEMP\Refman-5.6-en.a4.pdf',SINGLE_BLOB) AS X

INSERT INTO testdosyalar (aciklama,uzanti,dosya)
SELECT 'My SQL 5.6 Kullan�m K�lavuzu','.pdf', @pdf

�

(7)
Kontrol edip bir sat�r pdf dok�man�n tabloda oldu�undan emin olun:
SELECT * FROM testdosyalar

�

(8)
Bir iki dakika bekleyin ve katalogun g�ncellendi�inden emin olun ve
a�a��daki komutla PDF dosya i�inde arama yapabildi�inizi g�rmek i�in test yap�n:


SELECT * FROM testdosyalar
WHERE CONTAINS(dosya,'MySQL')

�

(9)
Sonu� gelmiyorsa fulltext katalog g�ncellenmemi� demektir.
Manuel g�ncelleme i�in �unu �al��t�r�n:


USE TEST
GO
ALTER FULLTEXT INDEX ON testdosyalar START FULL POPULATION
GO

�

Bu komut sonunda a�a��daki hata geliyorsa servisi restart edip yeniden 8.maddeyi deneyin.


Mesaj:
Warning: Request to start a full-text index population on table or
indexed view 'testdosyalar' is ignored because a population is currently
active for this table or indexed view.

�

8.Maddedeki sorgu sonu� veriyorsa i�lem tamam demektir.

Full Text sorgulama ile ilgili komutlar i�in BooksOnline'dan yard�m alabilirsiniz.

�

(10)
Hay�rl� olsun.


Not: Dok�manlar� varbinary(MAX) alana SQL'in i�ine de�il de FILESTREAM ile disk sisteminde tutmak aras�nda burada anlat�lan i�lemler a��s�ndan fark olu�maz. SQL her ikisini de FullText ile indeksleyebilir.

�

Sayg�lar...


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

�


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

�


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�


--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

--
Bu e-postay� Google Gruplar�'ndaki "bnr_net" adl� gruba abone oldu�unuz i�in ald�n�z.
Bu grubun aboneli�inden ��kmak ve bu gruptan art�k e-posta almamak i�in bnr_net+u...@googlegroups.com adresine e-posta g�nderin.
Daha fazla se�enek i�in, https://groups.google.com/groups/opt_out adresiniz ziyaret edin.
�
�

Yılmaz Kirlikaya

unread,
Jun 20, 2013, 4:33:47 AM6/20/13
to bnr...@googlegroups.com

Natro data center içinde. Gerçek sunucu. Sanal sunucular sıkıntılı. İşi kim yapacaksa bilgileri paylaşalım.

Ömer Şanlıer

unread,
Jun 20, 2013, 4:42:09 AM6/20/13
to bnr...@googlegroups.com
Hayırlı uğurlu olsun. yazilimpark.co da boştaymış :) ama .co, .com değil!


20 Haziran 2013 11:33 tarihinde Yılmaz Kirlikaya <yil...@nbt.com.tr> yazdı:

Tufan Dayi

unread,
Jun 20, 2013, 4:50:56 AM6/20/13
to bnr...@googlegroups.com
hazır bir yazılım mı? kullanılacak yoksa sıfırdan mı yazılacak?


From: omers...@gmail.com
Date: Thu, 20 Jun 2013 11:42:09 +0300

Subject: Re: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak

Yılmaz Kirlikaya

unread,
Jun 20, 2013, 4:55:31 AM6/20/13
to bnr...@googlegroups.com

Kişisel fikrim.

Buradaki kimsenin yeni bir yazılım üretecek kadar zamanı yok.

Hazır paketlerden birini kuralım derim.

Tufan Dayi

unread,
Jun 20, 2013, 4:58:40 AM6/20/13
to bnr...@googlegroups.com
Yılmaz bey sormam da sakınca yoksa sunucu işini nasıl hallettiniz ? :) Merak ettim doğrusu, sanal sunucuda değilmiş üstelik ...


From: yil...@nbt.com.tr
To: bnr...@googlegroups.com
Subject: RE: YNT: PDF DOC XLS vs. Dokümanları SQL İçinde İndekslemek ve İçerik Araması Yapmak
Date: Thu, 20 Jun 2013 11:55:31 +0300

Yılmaz Kirlikaya

unread,
Jun 20, 2013, 5:06:31 AM6/20/13
to bnr...@googlegroups.com

Niye sakınca olsun.

 

Natro üzerinde aktif 7 tane sunucu vardı 1 tane daha ekledim. Maksat bilgiyse bunun bedeli ölçülemez.

Konunun başlangıcı olan Full text le ilgili bilgiyi almanın bence bedeli olmaz. Bu şekilde ayda bir konu açsanız ve birileri de bunu okusa bunun fiyatını kim biçebilir. Ayrıca alınan sunucu iyi bir sunucu olduğu için bu sunucuyu başka yerlerde de kullanma şansım var. İşin ticari yönünü boş verelim biran önce bu güzel fikri hayata geçirelim. Biz niye her seferinde stackoverflow a gidelim neden bir stackoverflow olmayalım. Ben kendi adıma bunun eksikliğini özellikle mobil projelerde çok yaşadım. Başlamak bitirmenin yarısıdır. Başlayalım.

Abdulkadir Bener

unread,
Jun 20, 2013, 6:31:19 AM6/20/13
to bnr...@googlegroups.com
Abiler, kardeşler, bu yazı çok karıştı bende. takip edemiyorum.
Şu blog sitesi meselesini biriniz yeni bir kanalda özetleyebilir mi?
Önemine binaen faaliyete geçelim bence de bir an önce.
Hatta bir ara birlikte bir toplantı tertip edip yüz yüze de tanışalım.
 
Saygılar.
 
 


20 Haziran 2013 12:06 tarihinde Yılmaz Kirlikaya <yil...@nbt.com.tr> yazdı:

Yılmaz Kirlikaya

unread,
Jun 20, 2013, 6:51:10 AM6/20/13
to bnr...@googlegroups.com
Evet toplanti iyi fikir. Bu sayede erdemi de gormus olurum gorusmeyeli 10000 yil oldu. Yarin yapalim

iPhone'umdan gönderildi

20 Haz 2013 tarihinde 13:31 saatinde, Abdulkadir Bener <abdulka...@gmail.com> şunları yazdı:

Reply all
Reply to author
Forward
0 new messages