Portál AbcLinuxu, 31. října 2025 09:09
Když jsem bydlel na koleji, napsal jsem vyhledávač, který běžel na kolejním serveru a indexoval obsah FTP serverů okolo (rozumněj, semestrálky a tak  . Byla to Java+Tomcat+Lucene a s oblibou jsem ho používal na vyhledávání svých vlastních mptrojek.
. Byla to Java+Tomcat+Lucene a s oblibou jsem ho používal na vyhledávání svých vlastních mptrojek.
Už na koleji nebydlím a svou Lucernu (tak se to jmenovalo) používat nechci. Navíc mám mptrojky uložené na externím USB disku a nechci mást svého Trackera tím, že disk občas odpojím. Taky mám hrůzu z všelijakých media library přibalených k přehrávačům (oblíbený XMMS nic takového nemá, proto je taky oblíbený). Navíc chci indexovat i svou sbírku e-booků, i když jen názvy souborů. Locate se taky nehodí.
Tak jsem si včera během tří hodin napsal v Pythonu vyhledávač Giraffe. Je to poctivý vyhledávač na bázi invertovaných seznamů, žádný humus jako grep se složitostí O(n). Mám k tomu i grafické rozhraní ala GTK. Zajímalo by mě, jak dlouho bych to psal v C++, v Pythonu to byla vážně radost.
Funguje to tak, že se na začátku vytvoří index pro vybrané adresáře. Index se uloží a pak prohledává buď CLI utilitkou nebo grafickým klikátkem (search as you type).
Udělal jsem k tomu i logo a stránku se screenshotem, návodem a stažením. Má to 260 řádek, licence je pochopitelně Public Domain.
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
 . Síla obou jazyků je ale stejná. Jako Java vs C#.
. Síla obou jazyků je ale stejná. Jako Java vs C#.
             9.8.2007 09:25
xpj             | skóre: 22
             | blog: Malé linuxové radosti... a strasti
             | Řevnice
        9.8.2007 09:25
xpj             | skóre: 22
             | blog: Malé linuxové radosti... a strasti
             | Řevnice
        žádný humus jako grep se složitostí O(n).
To ale není zas tak hrozné, ne?
 Já navíc švindluju. Při startu aplikace se celý index načte do paměti, ale dotazy jsou v podstatě O(1). I když je to závislé na tom, jak je které klíčové slovo populární.
Já navíc švindluju. Při startu aplikace se celý index načte do paměti, ale dotazy jsou v podstatě O(1). I když je to závislé na tom, jak je které klíčové slovo populární.
             10.8.2007 07:13
brk             | skóre: 29
             | blog: broukoviny
        10.8.2007 07:13
brk             | skóre: 29
             | blog: broukoviny
            
        Je to poctivý vyhledávač na bázi invertovaných seznamů, žádný humus jako grep se složitostí O(n).LOL. No ono taky ten hloupý grep může mít paměťovou složitost třeba O(1). Zatímco tvoje asociativní pole kdóvijakou. Nehledě na to, že kdyby to někdo používal tak, že by to spustil pro každé vyhledávání (a pak ukončil), tak jsme vzhledem ke způsobu uložení indexu zpátky na O(n)
 Rozdíl o proti tomu zmíněnému C je v tom, ža tam bys moh implementovat aspoň paměťově úsporný prefixový strom, v pythonu by to možná věci jenom zhoršilo
 
Rozdíl o proti tomu zmíněnému C je v tom, ža tam bys moh implementovat aspoň paměťově úsporný prefixový strom, v pythonu by to možná věci jenom zhoršilo  
             
             
             
             . Nevěděl jsem o tom a navíc jsem si to poprvé v životě rád napsal jako generátor.
. Nevěděl jsem o tom a navíc jsem si to poprvé v životě rád napsal jako generátor.
            ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.