Pretraživanje HTML stranica korišćenjem “pauka” (Sphider)

Dakle imam sajt (moj katalog usluga), koj u sebi ima PHP i HTML strane (videti moje ranije postove : post1, post2, post3, post4, post5, post6, post7, post8).
Sada mi je potrebno da uradim pretragu tih stranica po raznim kriterijumima.
Pitanje je : kako?
Ideja je da se kreira MySQL baza i da se napuni podacima sa sajta, i onda se kreira interfejs za korisničku pretragu.
1. Šta je potrebno
MySQL, PHP i tekst editor. Takođe i DB admin alatka, recimo PHP My Admin (lepo se instalira kroz # yum install phpmyadmin*, a konfiguracija mu je u /etc/phpMyAdmin).
2. PHPMyAdmin
Ovo i ne mora, ako će se sve u bazi raditi iz komandne linije…..
# whereis phpMyAdmin
phpMyAdmin: /etc/phpMyAdmin /usr/share/phpMyAdmin
Pošto je moj Apache sa root dir u /var/www/html, i to se ne sme menjati, uradiću sledeće :
# ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
# service httpd restart
I onda se PHPMyAdmin-u prilazi na http://localhost/phpmyadmin
Napomena : username je root, a lozinka je ista kao i za MySQL root…..
3. Priprema MySQL baze (dobar link)
Šta treba uraditi posle instalacije MySQL servera na mašini :
# service mysqld start
Kreirati novu lozinku za MySQL/root :
# mysqladmin -u root password ‘nova-lozinka’
Ući u MySQL :
# mysql -u root -p
Kreirati bazu u koju će se smestiti podaci sa našeg sajta :
mysql> create database katalog2;
Provera urađenog :
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| katalog2 |
| mysql |
| test |
+——————–+
4. Povezivanje PHPMyAdmin-a MySQL-a na bazu
Prvo otići na : http://127.0.0.1/phpmyadmin/setup i popuniti podatke (localhost, root lozinka, etc)
Logovati se sa root/MySQL root lozinka.
Sada se odatle mogu kreirati tabele u novoj bazi, ali se to može raditi i ručno iz komandne linije (što ja više volim).

OPCIJA – Korišćenje Sphider-a (link)
Sphider je SW koji indeksira sajt i rezultate smešta u MySQL bazu, odakle se kasnije radi pretraživanje.
Jeste malo matoriji SW, ali za korišćenje u unutrašnjoj (zaštićenoj) mreži nije problem.
# unzip sphider-1.3.6.zip
Novostvoreni sadržaj prebaciti u /var/www/html folder (pošto je tu meni Apache document root).
Ja već imam ranije kreiranu DB : katalog2
In settings directory, edit database.php file and change $database, $mysql_user, $mysql_password and $mysql_host to correct values (kod mene su to redom : katalog2, root i nova-lozinka).
Otići u web browser i otvoriti fajl localhost/Sphider/admin/install.php. Odmah se dobija tekst :
sphider1
In admin directory, edit auth.php to change the administrator user name and password (default values are ‘admin’ and ‘admin’).
Open localhost/Sphider/admin/admin.php in browser and start indexing.
Napomena : OBAVEZNO staviti “/” na kraju URL-a da bi se indeksiranje obavilo kako valja!
Sphider2
Na dnu nove strane će pisati “Indexing completed”, i to je to.
Kada se nešto promeni na sajtu, samo reindeksirati sajt.

5. Povezivanje Sphider-a na početnu stranu sajta
Frame za pretragu je (u mom slučaju) : /var/www/html/Sphider/search.php i link ka njemu treba da stavim na početnu stranu moje prezentacije (kod mene : /var/www/html/katalog2/index.html).
Sada samo taj link treba ubaciti u index.html, na željeno mesto, i to se radi ubacivanjem ovog teksta u index.html stranu :
sphider3

Kako naterati Sphider da NE indeksira određene strane
U delu “Advanced options” pod stavkom “URL must not include”, stavi se spisak (po jedna stavka u svaki red) u obliku Pearl regular expressions, u formi : */deo-naziva-fajla-koji-neću-da-indeksiram/
Na primer :
sphider4

Kako izvesti da Sphider (ili bilo koji drugi pretraživač) ne daje “Untitled documents” kao rezultat pretrage
U head HTML dokumenta treba staviti tag “title” :
sphider5
Da bi se ovo aktiviralo u pretrazi treba kroz Sphider reindeksirati sajt.

Napomena 1 : ako se koristi free verzija Sphider-a, onda promena parametara ne može da se radi kroz html, nego se mora direktno menjati sam fajl ~Sphider/settings/conf.php
Napomena 2 : ako Sphider neće da indeksira ceo sajt, ima par stvari koje treba uraditi :
a) u ~Sphider/settings/conf.php staviti da bude :
// Min words per page required for indexing
$min_words_per_page = 1;
// Words shorter than this will not be indexed
$min_word_length = 1;
b) Staviti pri (re) indeksiranju da je “Indexing options”/”To depth” na “4” umesto opcije “Full”
Napomena 3 : ne stavljati “localhost” kao ime servera, sem u testne svrhe!! Staviti AD ime (ako je sve u domenu) ili IP adresu.
Napomena 4 : u ~Sphider/settings/conf.php “0” znači NE, a “1” znači DA
Napomena 5 : Kako u rezultat pretrage Sphider-a postaviti link ka sopstvenoj Home strani
Potrebno je izmeniti sadržaj fajla : /var/www/html/Sphider/templates/standard/search_results.html
I na sam početak fajla dodati link :
(moj je u boji, pa je malo komplikovanije)
sphider-pretraga-link