Table des matières
Présentation
Mnogosearch
Mnogosearch : extension Php
Extension mnoGosearch (php facile)
Compiling php extension 1.92 with php 5.2.3 on ubuntu 64bit platform
Nouvelles versions
mnoGoSearch 3.3.6
Changements notables :
- le mode de stockage par défaut est DBMode=blob DBMode=blob fonctionne avec SQLite3
- le bug #2023 (“–disable-mysql-fulltext-plugin doesn't work”) est résolu
- recherche et indexation améliorées
- DBMode=multi fonctionne désormais avec “GroupBySite=yes”
- search.cgi utilise moins de mémoires en DBMode=blob
Search ou crawling
La recherche s'effectue via le cgi-bin ou via la fonction udm_find de l'api php
Le cgi-bin
/usr/lib/cgi-bin/search.cgi
/usr/local/mnogosearch/bin/search.cgi
Un exemple de search.htm est fourni et utilise l'api php : ./mnogosearch/php/index.php
Indexation
dbmode, dbaddr
Mode single, multi, blob et autre paramètre de la ligne de commande de indexer comme par exemple LiveUpdates=yes
dbmode : sélectionne le mode de stockage des mots dans la base de données.
Si vous indiquez single, tous les mots seront stockés dans la même table.
Si vous indiquez multi, les mots seront situés dans différentes tables, suivant leur taille.
Le mode multi est généralement plus rapide, mais requiert plus de tables.
Si le mode crc est sélectionné, mnoGoSearch enregistrera un entier de 32 bits, calculé avec l'algorithme CRC32, plutot que des des mots. Ce mode requiert moins d'espace disque, et il est beaucoup plus rapide que les modes single et multi.
crc-multi utilise la même technique de stockage que le mode crc, mais il stocke aussi les mots dans différentes tables suivant leur taille.
DBMode=multi : l'exploration(crawling ) et l'indexation fonctionne ensemble. advantage : search index est toujours à jour avec le crawler qui a déjà été téléchargé.
DBMode=blob : l'exploration(crawling ) et l'indexation fonctionne séparément. avantage : plus rapide au moment de la recherche que DBMode=multi.
Par contre il lui faut une étape supplémentaire : indexer -Eblob ou indexer –index pour mettre l'index à jour, après l'exploration qui a téléchargé un nombre de documents avec des nouveaux contenus. (i.e. both new documents and old documents that have changed since last crawling).
Le choix entre DBMode=blob et DBMode=multi se fait en fonction de la taille de la base de données et les performances de recherche.
Si votre collection de documents est plutôt petit et que les performances de recherche sont suffisantes :
search.htm : dbmode = multi indexer.conf : DBAddr mysql://root:mypassword@localhost/mnogosearchactu/?DBMode=multi crontab : /usr/local/mnogosearch/sbin/indexer -d /usr/local/mnogosearch/etc/indexer.conf
Si votre collection de documents est plutôt grande et qu'on a besoin de performances de recherche
search.htm : dbmode = blob indexer.conf : DBAddr mysql://root:mypassword@localhost/mnogosearchactu/?DBMode=blob crontab : Crawling : ./indexer -d /usr/local/mnogosearch/etc/indexer.conf Indexing : ./indexer --index -d /usr/local/mnogosearch/etc/indexer.conf ou Indexing : ./indexer -Eblob -d /usr/local/mnogosearch/etc/indexer.conf
Principe
Les sites indexés sont stockés en base de données dans les tables bdict et bdicti
L'indexation doit être programmé via la crontab (cf ci-dessous)
La commande pour indexer est :
cd /usr/local/mnogosearch/ sudo ./sbin/indexer -d /usr/local/mnogosearch/etc/indexer.conf
-d permet de spécifier un fichier de configuration particulier.
Utilisation de la recherche
Udm_Get_Res_Field :
UDM_FIELD_DESC/UDM_FIELD_TEXT : la limite du nombre de caractère lu par mnogosearch est indiqué dans indexer.conf : Section meta.description