Table des matières

, , ,

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, décentralisé, qui permet 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

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:8250';
$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"
}

Utilisation

Il est possible d'interroger Seeks de diverses manières :

# .google.*/search?
# .google.*/custom?
# .bing.*/search?
# .cuil.com/search? 

La base de données 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.

#snip#
activated-plugin httpserv
#snip#

attention, cela désactive le proxy, il faut désactiver l'option automatic-proxy-disable pour utiliser à la fois le proxy et le plugin http.

Configuration

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).

Voir aussi


Contributeurs : Psychederic, piti, lylambda, …