Portál AbcLinuxu, 30. dubna 2025 15:44
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.
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:
žádný humus jako grep se složitostí O(n).
To ale není zas tak hrozné, ne?
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)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.