Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Milyon satirlik metin dosyasinda hizli arama.


di

Öne çıkan mesajlar

Selamlar,

2,5 milyon satirlik bir dosya icerisinde cat + grep ikilisi ile arama yapmayi denedigimde sonucu 3-4 saniyede aliyorum.

Bu sureyi dusurmek icin onerebileceginiz yol yordam var midir ? Yani yazilim olmasi sart degil, sadece algoritma ya da fikir de yeter. Ben kodlarim gerisini =)
Link to comment
Sosyal ağlarda paylaş

soyle bisi var denedin mi?

http://tdas.wordpress.com/2008/02/03/speed-up-grep/

birde sorted dosyalari daha kisa surede ariyor gibi bisi kalmis aklimda oyle denesene bi.

ya da bu sreukli olacak bisiyse ve dosya sabitse dosyayi alfabeye gore bol, 40 a falan boldugunde hizlanir bayagi a b c diye

arayip bulunca ne yapacaksin bi de, yani icinde var mi yok mu diye ariyosan, ve kritik bisiyse baska yollarda var saliselere indirebilecegin.

edit hatta diger yolu soyliyim, sphinx kur orada indexlet, bulman 0.001 sn falan alir
Link to comment
Sosyal ağlarda paylaş

Yeni fikirle geliyorum, bu 2.5 milyon satirlik dosya ayni dosya mi, her seferinde bunu mu kullaniyorsun? Eger oyleyse Trie diye bir data structure var, bi kere ona yukleyeceksin sonra instant bulacaksin direk sonuclari:

detayina giricektim ama wiki sagolsun varmis aciklamasi :)
http://en.wikipedia.org/wiki/Trie

kesin milyon tane vardir zaten nette de, ben ingilizce icin yazmistim zamaninda bir tane, C++'da, isine yaricaksa gonderebilirim. Node class'iyla oynayarak pointer sayisini 26 dan 29'a cikarirsan ve ingilizce karakterleri cikarip turkceleri eklersen turkce olur zaten :)

Wikideki ornek tam iyi degil gerci bence, her node'da bir karakter tutucaksin sadece sen, mesea adam to'yu t -> to diye tutmus, sen t -> o diye tutucaksin, ve de sayilar yerine eger o node'da tamamlanan bir kelime varsa 1, yoksa 0 tutacaksin, t'de 0 o'da 1 olcak mesela bu ornekte..
Link to comment
Sosyal ağlarda paylaş

dosyayi ikiye bolmek ne kadar suruyor? 2.5 milyon satir pek bir sey ifade etmiyor aslinda, kac gb (2.5milyon satirda 1 kolon da olur 100 kolon da)?
wc -l diyip satir sayisini aldiktan sonra dosyayi tail'la ikiye bolmen ne kadar suruyor? Sonra bu islemi recursive bir sekilde yaparak ararsan hizlanirsin. Ama dedigim gibi, onemli olan dosyayi ikiye bolme hizin, bu da dosyanin boyutuna bagli.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...