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, seul un méta-moteur libre est disponible.

Nœud web public, de démonstration: 1) : http://www.seeks.fr/

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 8150 (depuis la version 0.3, il s'agissait du port 8118 pour les versions précédentes)

/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

cd /usr/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

make
Relancer le proxy en cas de crash

Il est peut être intéressant de relancer automatiquement en cas de crash ou autre problème réseau. 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 suffit de faire pointer son navigateur favori sur le proxy fourni par seeks. Lorsqu'une requête est effectuée sur un moteur de recherche que seeks connaît, il l'intercepte est effectue lui même la requête, avant de proposer les résultats. (ce comportement peut-être modifié en touchant le fichier /usr/share/seeks/plugins/websearch/patterns/qi_patterns)

Recherche

Le proxy est maintenant en fonctionnement, il est alors possible de l'interroger de deux manières, suivant comment il a été installé :

  • En configurant votre navigateur pour passer par le proxy :
    • il suffit de faire pointer son navigateur favori sur le proxy fourni par seeks (port par défaut: 8150). Lorsqu'une requête est effectuée sur un moteur de recherche que seeks connaît, il l'intercepte est effectue lui même la requête, avant de proposer les résultats. (ce comportement peut-être modifié en touchant le fichier /usr/share/seeks/plugins/websearch/patterns/qi_patterns)
  • En interrogeant le serveur web intégré (port par défaut: 8080)

Vous pouvez configurer le proxy (qui est basé sur Privoxy) grâce au fichier nommé "/usr/src/seeks/src/config". 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 "/usr/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.1305531797.txt.gz
  • Dernière modification: Le 16/05/2011, 09:45
  • (modification externe)