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.


Öne çıkan mesajlar

Mesaj tarihi:
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 =)
Mesaj tarihi:
Hadi lan, aslansiniz kaplansiniz bilirsiniz. Index olustur demeyin ama. Onu zaten yapiyorum, onun haricinde bir yol yontem istiyorum.
Mesaj tarihi:
Mail logunda aradigini varsayaraktan, tarihe gore bir filtreleme yapabilirsin.

Ornegin aradigin tarih/saat bulundugun satirdan bilmem kac dakka ilerdeyse ( istatistiksel olarak incelemen lazim tabii bunu once ) 5000 satir skip edersin v.s.
Mesaj tarihi:
Yok abi daha cok iliskisel verilerin text dosyasina dump edilmis haliydi data.

Verilerin sirasini degistirmek belki ise yarayabilirdi ama zaten denemisiz.

Geriye deneyebilecegimiz pek bisey kalmasi sanirim.
Mesaj tarihi:
Daha hızlı bir harddisk almayı düşünebilirsin. Raid ile aynı harddisk'ten birden fazla takarak hızlandırabilirsin. Hatta birden fazla bilgisayar ile paralel arattırabilirsin (becerebilirsen :p).
Mesaj tarihi:
Mirage said:

Daha hızlı bir harddisk almayı düşünebilirsin. Raid ile aynı harddisk'ten birden fazla takarak hızlandırabilirsin. Hatta birden fazla bilgisayar ile paralel arattırabilirsin (becerebilirsen :p).


super computer alsin hatta di mi
Mesaj tarihi:
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
Mesaj tarihi:
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..
Mesaj tarihi:
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.
Mesaj tarihi:
Dosya sik arananlar ust siralarda olacak sekilde tasarlanmisti esasen. Yani buna ragmen sikinti yasandi =)

O sebeple vazgectik bu yoldan yordamdan. Farkli birseyler ustunde calisiyorum su anda.
×
×
  • Yeni Oluştur...