Il y a deux éléments de Xapian dont vous avez besoin pour suivre ce guide : la bibliothèque elle-même, et le support pour le langage que vous allez utiliser. Ce guide a été écrit à l'origine avec des exemples en Python, et nous avons commencé à faire des traductions complètes en Java, Perl, PHP et C++. Consultez le guide pour plus d'informations.
- Ubuntu comme environnement d'exécution
Python
,pip
,git
installé
-
Installer Xapian
Exécutez le script
setup/install-xapian.sh
pour télécharger et configurer l'environnement Xapian & dependence ou suivez les instructions dans le fichier :sh setup/install-xapian.sh
-
Cloner le projet
Clonez le dépôt du projet sur votre machine locale :
git clone https://github.com/Abdelhakim-gh/SRI_Project cd SRI_Project
-
Récupérer les données
Exécutez le script
fetch_data.py
pour récupérer les données des films depuis l'API OMDB :python fetch_data.py
-
Indexer les données
Exécutez le script
index.py
pour indexer les données des films récupérées dans une base de données Xapian :python index.py
Utilisez le script query.py
avec différentes options pour interroger les données indexées. Voici quelques exemples :
-
Rechercher des films par mot-clé dans le résumé ou la description :
python query.py --keyword 'aventure'
-
Rechercher des films avec un titre spécifique :
python query.py --title 'inception'
-
Rechercher des films dans une plage d'années spécifique :
python query.py --year_range '2000..2010'
-
Rechercher des films avec une classification spécifique :
python query.py --rated 'PG-13'
-
Afficher les facettes sur les résultats (par exemple, le nombre de films par classification) :
python query.py --keyword 'amour' --show_facets
Ce projet démontre les bases de la création d'un système de recherche d'informations en utilisant Xapian. En suivant les étapes fournies, vous pouvez :
- Récupérer, indexer et interroger des données depuis une API externe.
- Implémenter un système de recherche évolutif et personnalisable.
- Étendre le système avec des fonctionnalités avancées telles que la recherche facettée, les requêtes par plage et les opérateurs booléens.