Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Seeks, moteur de recherche libre

Seeks est un moteur de recherche libre (sous licence AGPL).

Son objectif est de mettre en place un moteur ouvert, acentré, qui permette une recherche collaborative. A ce jour, un méta-moteur libre, avec personnalisation, et possibilité de collaboration avec d'autres instances est disponible.

Nœuds web public, de démonstration: Liste des nœuds publics

Installation par Launchpad ( recommandée )

Installation
Configuration, lancement

Une fois le paquet installé le service ne sera lancé automatiquement qu'après le redémarrage de l'ordinateur. Si vous ne voulez pas redémarrer ce dernier, exécutez dans un terminal la commande:

     sudo service seeks start

Les fichiers de configuration sont disponibles dans le dossier /etc/seeks .

/etc/seeks/config:

Permet la configuration du couple ip/port d'écoute (attention à ne pas laisser votre proxy ouvert) Par défaut, seeks écoute sur le port 8250 (depuis la version 0.3, il s'agissait du port 8118 pour les versions précédentes).

Un serveur web léger est disponible, sous forme de plugin, il suffit pour l'activer de décommenter la ligne

#activated-plugin http-serv

/etc/seeks/httpserv-config:

Permet la configuration du couple ip/port d'écoute pour le serveur web intégré (port 8080 par défaut). L'usage du serveur web n'est pas obligatoire, l'architecture prévue initialement est bien de passer par le proxy.

/etc/seeks/websearch-config et /etc/seeks/img-websearch-config:

Permet la configuration des métamoteurs texte et images (des)activation des moteur amonts, nombre de résultats par page, analyse de contenu, et timeouts divers

/etc/seeks/lsh-config:

sert pour le chargement des listes de «stopwords» utilisés pour les fonctionnalités similar et cluster (inutile en l'état, permet uniquement l'ajout de langues au moteur)

L'emplacement des fichiers de configuration diffère si l'on compile à la main

Compilation du proxy

si l'on se trouve sur une machine de bureau, on peut ajouter :

mkdir ~/src
cd ~/src
echo "on télécharge les sources"
sudo apt-get install git-core
git clone git://seeks.git.sourceforge.net/gitroot/seeks/seeks
cd seeks
./autogen.sh

echo "compilation"
./configure --enable-libevent1
make
on peut remplacer "make" par "make -j X" ou X est le nombre de cores disponible pour accélerer la compilation
Lancer le proxy
cd src
./seeks
Relancer le proxy en cas de crash

Il est peut être intéressant de relancer automatiquement en cas de crash. Pour faire ça en vitesse, il est possible de le lancer dans une boucle :

while true ; 
do ./seeks ; 
done

Ou solution plus propre : on peut utiliser Cron et lancer Seeks en tant que daemon. Il faut pour cela mettre la ligne suivant dans la crontab :

*/5 * * * * root [ ! -f /var/run/seeks.pid -o -z "$(cat /var/run/seeks.pid 2>/dev/null )" -o ! -d "/proc/$(cat /var/run/seeks.pid 2>/dev/null)" ]  && cd /chemin/vers/seeks/ && ./seeks --daemon

Et lancer Seeks en précisant le fichier .pid à utiliser et qu'il faut lancer le programme en tant que daemon :

./seeks --daemon --pidfile /var/run/seeks.pid

Installation de l'interface web (facultatif)

lighty-enable-mod fastcgi
/etc/init.d/lighttpd force-reload

Le script de recherche doit être copié dans un fichier nommé, par exemple, "search.php" à placer dans le "Document-Root" de votre serveur web, par défaut le répertoire "/var/www" :

<?

/* Copyright Camille Harang

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see http://www.fsf.org/licensing/licenses/agpl-3.0.html. */

if (array_key_exists('HTTPS', $_SERVER) && $_SERVER['HTTPS']) $scheme = 'https://';
else $scheme= 'http://';

$seeks_uri = 'http://s.s';
$proxy = 'localhost:8118';
$base_script = $_SERVER['SCRIPT_NAME'];
$base_url = $scheme.$_SERVER['HTTP_HOST'].$base_script;

if ($_SERVER['REQUEST_URI'] == '/') { header('Location: '.$base_url.'/websearch-hp'); }
else $url = $seeks_uri.str_replace($base_script, '', $_SERVER['REQUEST_URI']);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1) ;
$header = array("Seeks-Remote-Location: ".$base_url);
if (array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) $header[] = "Accept-Language: ".$_SERVER['HTTP_ACCEPT_LANGUAGE'];
curl_setopt ($curl, CURLOPT_HTTPHEADER, $header);
$result = curl_exec($curl);
$result_info = curl_getinfo($curl);
if(curl_errno($curl)) echo 'CURL ERROR: '.curl_error($curl);
curl_close($curl);

header('Content-Type: '.$result_info['content_type']);

echo $result;
?>

Le script est maintenant disponible à l'adresse http://localhost/search.php/websearch-hp

Ne pas conserver les logs de recherche

Plusieurs solutions pour cela. La première et la plus simple consiste à classiquement rediriger les sorties de stderr vers /dev/null lors du lancement du proxy :

./seeks 2> /dev/null

Mais il est également possible d'indiquer au serveur web de ne pas conserver les requêtes en utilisant les lignes suivantes :

$HTTP["host"] =~ "^your_node_address$" 
{
accesslog.filename = "/dev/null"
server.errorlog = "/dev/null"
}

Il est possible d'interroger seeks de diverse manières :

  • En configurant votre navigateur pour passer par le proxy : Il suffit de faire pointer son navigateur favori sur le proxy fourni par seeks : l'adresse est "localhost" et port par défaut à partir de la version 0.3 est "8250"). La base de donnée qui stocke les recherches passées et résultats associés se situe dans /var/lib/seeks ou ~/.seeks suivant la méthode d'installation.
    • Utilisation directement : rendez-vous simplement à l’adresse http://s.s/websearch-hp.
    • Via la barre de recherche de Firefox : pour l'intégrer, sélectionner "Ajouter «Seeks Search»" dans le menu de la barre de recherche en visitant la page précédente.
    • Interception de requête : par défaut, lorsqu'une requête est effectuée sur un moteur de recherche que seeks connaît, il l'intercepte et effectue lui même la requête, avant de proposer les résultats. Ce comportement peut-être modifié dans /usr/share/seeks/plugins/websearch/patterns/qi_patterns si vous avez utilisé le paquet .deb ou dans le fichier ~/seeks/src/plugins/websearch/patterns/qi_patterns si vous avez utilisé les sources. Pour ne plus intercepter aucune requête, commentez tout les moteurs de recherche :
# .google.*/search?
# .google.*/custom?
# .bing.*/search?
# .cuil.com/search? 
  • En interrogeant le serveur web intégré (le port par défaut est "8080")

Vous pouvez configurer le proxy (qui est basé sur Privoxy) grâce au fichier "/etc/seeks/config" ou ~/src/seeks/src/config suivant la méthode d'installation. Ce fichier de configuration est similaire à celui de Privoxy.

Il est également possible de paramétrer le comportement du proxy concernant les recherches, par exemple en choisissant les moteurs à interroger, l'affichage d'une vignette représentant chaque résultat et le nombre de résultats par page, etc. Pour cela il faut éditer le fichier "/etc/seeks/websearch-config ou ~/src/seeks/src/plugins/websearch/websearch-config".

Pour plus de détails, voir la documentation de toutes les options de configuration de Seeks http://www.seeks-project.info/wiki/index.php/Seeks_Configuration (en anglais).


  • seeks.1322134043.txt.gz
  • Dernière modification: Le 15/12/2011, 15:20
  • (modification externe)