Bonjour,
je dois savoir le plus rapidemment possible en quoi HIBERNATE SEARCH peut m'aider à répondre à mon probleme et comme je n'ai pas le temps de lire le livre HIBERNATE SEARCH IN ACTION en entier, j'ai quelques questions preliminaires.
Voici mon probleme : je travaille sur une application WEB utilisant hibernate (avec JSP, HTML, SPRING, JAVA) et je recherche une technologie qui peut resoudre le probleme suivant : j'ai une base de donnees avec beaucoup d'objets mappes à la base. La structure de la base de donnees est tres complexe. L'interface pour acceder à l'application est accessible pour differents utilisateurs qui ont leur propre role dans l'application. Par exemple l'ARCHITECTE a une vue sur quelques (pas tous) les Studies (etudes) (object Study), une partie des groupes d'items (groupe de champs) de ces etudes (objet ItemGroup), et une partie des Items (champs) (objet Item) des ces groupes d'Items. Cet ARCHITECT a aussi une vue sur quelques (pas tous) Sites (des localisations), et une vue sur quelques (pas tous) utilisateurs (objet User).
Je veux implementer la fonctionnalite suivante : par exemple l'ARCHITECT peut rentrer quelques mots dans un champ et faire une recherche textuelle sur les objets auxquels il a acces qui comporte des proprietes contenant ces mots. Ceci sera fait par une requete AJAX.
La grande question est : est-ce que HIBERNATE SEARCH (technologie qui est decrite dans le livre HIBERNATE SEARCH IN ACTION) est adaptee à mon probleme.
Les premieres questions qui me viennent à l'esprit sont les suivantes :
1) j'ai d'abord des doutes sur la rapidite de la reponse, sachant que la recherche se fera sur des dizaines d'objets qui correspondent à plusieurs milliers de lignes de donnes en base pour chaque objet. Est-ce que HIBERNATE SEARCH m'aidera à obtenir une reponse instantanee ?
2) Je peux d'autre part rentrer dans mon champ le mot "ant". Si je suppose qu'il y a 3 objets qui ontleurs proprietes contenant les mots "avantage", "antenna" et "accountant", j'ai un doute sur la capacite de HIBERNATE SEARCH à trouver ces 3 mots à partir du mot "ant". En effet HIBERNATE SEARCH indexe les proprietes de tables par mot. C'est à dire que cette technologie m'aidera à trouver les 3 mots separemment, mais il ne peut pas faire de recherche sur des chaines de caracteres inclues dans ces mots. Est-ce qu'il y a une facon de resoudre ce probleme avec HIBERNATE SEARCH sans degrader les performances ?
3) Je vais faire des recherches textuelles dans des objets de l'application et seulement sur les objets qui sont accessibles pour le role de l'utilisateur qui fait la recherche. Du coup, avant de faire ma recherche textuelle, je vais devoir faire une preselection sur les objets pour selectionner uniquement ceux qui sont accessibles. C'est seulement apres que HIBERNATE SEARCH entre en action : Or d'apres ce que j'ai lu, a recherche textuelle se fait sur une classe et sur certaine proprietes de cette classe. Ma questions est : est-il possible de faire une recherche sur une liste d'objets et non sur tous ?
4) D'apres ce que j'ai compris l'indexation de HIBERNATE SEARCH se fait par objet (avec ses proprietes). Ma question est : est t-il possible d'indexer avec un seul indexe toutes les tables de ma base de donnees de maniere à ce que ma recherche soit plus rapide. En effet, si je defini en entree un ensemble de tables avec certaines de leur proprietes pour chacune, est-il possible d'indexer tout en meme temps ?
Voilà mes premieres questions. Je n'ai vraiment pas eu le temps de lire le livre HIBERNATE SEARCH IN ACTION et je dois repondre à ces questions rapidemment. Donc merci beaucoup si quelqu'un peut me venir en aide.
|