22
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M Réseau BD 11/12/08 Hibernate Search Réunion d’unité – 23/10/2008 Erik Kimmel

A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Embed Size (px)

Citation preview

Page 1: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

A L I M E N T A T I O N

A G R I C U L T U R E

E N V I R O N N E M E N TRéseau BD 11/12/08

Hibernate Search

Réunion d’unité – 23/10/2008

Erik Kimmel

Page 2: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Au programme…• Généralités• Le full-text, concepts• Problèmes• Hibernate Search

Réseau BD 11/12/08 2

Page 3: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 3

Généralités

Page 4: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 4

Description…• C’est quoi ?

API Java Open Source Module Hibernate (http://www.hibernate.org)

• C’est bien pour Intégrer Hibernate et LuceneTM

Indexer un « object domain model » Ajouter des fonctionnalités de recherche full-text à

une application

• C’est moins bien pour Faire le café Sortir le chien

Erik Kimmel
Représentation objet du modèle de données. Typiquement réalisée en UML.
Page 5: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

…description• Historique

Leader : Emmanuel Bernard Au départ sous-composant de Hibernate Annotations Première release : 3.0.0 Beta1 (19/03/2007) Version actuelle : 3.1.0 Beta1 (17/07/2008)

Réseau BD 11/12/08 5

Page 6: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 6

Full-Text, what’s that ?

Page 7: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Le full-text…• Un type de recherche orienté « humain »

Requêtes presque naturelles

• Recherches de : Mots Phrases

• Recherches par : Pertinence Approximations

Réseau BD 11/12/08 7

Page 8: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

…le full-text• Fonctionnalités :

Opérateurs booléens Contrôle de l’indexation : les mots courants ne sont pas

indexés Indexation de différents supports : Texte, HTML, DOC,

PDF, XML… Mise à jour d’un index

• Solutions : Moteurs pour les BD : MySQL: Full Text Search, Senna,

PostgreSQL: Tsearch2, Oracle: Oracle Text Fonctionnalités DB : procédures, tables de mots-clé Solutions externes : LuceneTM, Sphinx, mnogosearch

Réseau BD 11/12/08 8

Page 9: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Indexer• Objectif :

Créer une structure permettant de rendre les recherches de données plus efficace

• Etapes : Rassembler l’information Conversion en texte

(document) Extraire les mots

(atomiques) des documents

Stockage

Réseau BD 11/12/08 9

Page 10: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Rechercher• Etapes :

Requête utilisateur Déterminer la liste des

mots Trouver les documents

appropriés Éliminer les mauvais Ordonner par

pertinence

Réseau BD 11/12/08 10

Page 11: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 11

Problèmes

Page 12: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Les mismatches• Entre le monde « objet » et le monde « texte

plat »• 3 types :

Mismatch structural Mismatch de synchronisation Mismatch de récupération des résultats

• Limitations pour l’utilisation d’un moteur full-text

Réseau BD 11/12/08 12

Page 13: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Mismatch structural

Réseau BD 11/12/08 13

Page 14: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Mismatch de synchronisation

Réseau BD 11/12/08 14

Page 15: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Mismatch de récupération• Résultats des recherches : documents• Structure : Map (paires clé/valeur)• Difficulté : convertion en objets métier

Réseau BD 11/12/08 15

Page 16: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 16

Hibernate Search, technique

Page 17: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Configuration• Pré-requis : Java 1.5+, Hibernate Core,

Hibernate Annotations• Projet maven : ajout des dépendances• Définition des « directories »• Mapping Hibernate, annotations

Réseau BD 11/12/08 17

package example.Book;

@Entity@Indexedpublic class Book { @Id @DocumentId private Integer id;

@Field(index=Index.TOKENIZED, store=Store.YES) private String body;

@Field(index=Index.TOKENIZED, store=Store.YES) private String summary;

...}

Page 18: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Indexation• Transparente• Transactionnelle

Réseau BD 11/12/08 18

Page 19: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Mapping• Définir les attributs à indexer• Stratégies :

Tokenized Untokenized

• Conversion des types : Bridges Représentation String d’un type

• Associations Dénormalisation Document unique

Réseau BD 11/12/08 19

Page 20: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Recherches• Types :

Même SessionFactory Même API qu’Hibernate Core Résultats : objets de persistence

• Utilisation de la syntaxe Lucene• Restriction sur les types recherchés• Pagination• Lazy loading

Réseau BD 11/12/08 20

Page 21: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle Luyten

Conclusion / Résumé• Outil Open Source• Ajout de fonctionnalités de recherche full-

text à une application• Utilisation de LuceneTM

• Synchronisation transparente entre base de données et index

• Conversion entre « domain model » et index grâce aux annotations

• Réutilisation de l’API Hibernate pour les requêtes

Réseau BD 11/12/08 21

Page 22: A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel

Erik Kimmel – Isabelle LuytenRéseau BD 11/12/08 22

Questions… et peut-être réponses