Projekt „Nový hledač“
Minihledač - zadání

Jedná se o tento projekt:
http://www.milionovastranka.net

Cílem je vyvinout prototyp (minihledač) a na něm ověřit kvalitu mého algoritmu hledání.

Rozumné financování je zajištěno.

Stahnout a zpracovat by se měly pokud možno všechny WWW stránky v češtině plus WWW stránky pro cca 50klíčových slov v angličtině.

Toto je úvodní rozvaha o databázi:
http://www.milionovastranka.net/konfigurace_databaze.htm

Tato konfigurace je k dispozici:
http://www.milionovastranka.net/konfigurace_hardware_a_pripojeni.htm

V případě nutnosti může být dál rozšířena, především paměť hlavního serveru může být až 96 giga.

Specifikace zadání pro programátora:
Stahováni
Stažení WWW stránek, jejich překódování do jednotného kódu a uložení na disk.
Stažení dokumentů (.doc, .docx, .pdf).
Stažení údajů o jiných komponentách Internetu (obrázky, audio, video).
Zpracování
Parsování WWW stránek na tagy a texty, uložení těchto údajů do databáze.
Převedení dokumentů do textového tvaru (.txt), uložení údajů (slov) z dokumentů do databáze.
Uložení údajů o jiných komponentách (obrázky, audio, video) do databáze.
Výpočet hodnot kriterií hledání pro WWW stránky a další komponenty.
Agregace těchto hodnot do množin WWW stránek a komponent.
Výpočet statického Ranku (iterace).
Výpočet jedné hledací veličiny pro množiny a stránky.
Setřídění hledací veličiny podle velikosti.
Odpovídání
Doindexace: pomocí absolutního pořadí a hledaného klíčového slova se stanoví výsledné (relativní) pořadí s ohledem na hledané klíčově slovo.
Výpočet dynamického Ranku.
Výpočet výsledné hledací veličiny.
Setřídění hledací veličiny, stanovení definitivního pořadí nalezených WWW stránek.
Odpověď, odpovědní obrazovka je standard, jako je u stávajících hledačů.

Programátorovi dodám:
Seznam všech domén .cz, další WWW adresy bude získávat z WWW odkazů na stažených stránkách (tag HREF).
Algoritmus, tedy postup stahování stránek a údajů o komponentách, práci s položkami.
Návrh ovládacích oken (pro optimalizaci vah kriterií a pro odpovídání při hledání).
Strukturu databáze.

Od programátora potřebuji:
Stahování:
Kódy HTML 0 až 4, stahování HTTPS, vyhodnocování WWW adres z odkazů (absolutní, relativní, JavaScript).
Převedení dokumentů (.doc, .docx,. .pdf) do textového tvaru (.txt).
Spuštění N paralelních procesů, aby se vytížila kapacita stahovací linky-
Zpracování a odpovídání:
Optimalizace databáze, hlavně z hlediska času, částečně z hlediska obsazení disku.
Spuštění N paralelních procesů, aby se zpracování a odpovídání provedlo v rozumném čase.

Ukládání WWW stránek bude provedeno pouze do souborů, nikoli do databáze. Použije se komprese gzip, za součinnosti mého pana hardwaráře.

Pro databázi se pravděpodobně použije komprese ZFS, za součinnosti mého pana hardwaráře.

Jedná se o prototyp, takže mohou chybět aktualizace databáze ohledně časových změn a nových WWW stránek, ovšem řešení (programy, databáze) musí být navrženo tak, aby se tam později daly aktualizace snadno doplnit. Celé řešení by mělo být databázové. Předpokládá se, že pro reálný hledač by se později napsaly některé databázové komponenty natvrdo v C++.

Maximální počet paralelních uživatelů prototypu (hledajících) bude 10.

Koncovým kriteriem úspěšnosti je odezva odpovědi při hledání do 10 sekund.

Preference je C++, Linux, Apache, Hadoop.
Můžete ale podat alternativní návrh(y).

Podmínkou je předem podepsat smlouvu o utajení a smlouvu o dílo.

Program by měl být navržen a napsán rozumně, tedy strukturovaně a čitelně.

Pokud máte nadále o tuto zakázku zájem, prosím, mailněte mi Vaši představu o čase a penězích.

PS:
Rád bych, aby se řešitelé účastnili projektu s nějakou dávkou nadšení pro věc
J