[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sdx-developers] RE : documentbase
From: |
Pierrick Brihaye |
Subject: |
Re: [sdx-developers] RE : documentbase |
Date: |
Mon, 10 Jun 2002 20:48:10 +0200 |
Salut,
>> 1) elle délègue le stockage du document au repository ad hoc
>> Ad hoc? C'est-à-dire? En fait, lorsqu'on indexe (ajoute...), on doit
>> dire à la DB quel repository utiliser.
On est d'accord. Le repository prend le stockage des documents en charge ;
c'est une bonne séparation des tâches...
>> Là où ça change c'est, sur le stockage de l'index et sur le
>> stockage des
>> métadonnées système qui sont dépendants des architectures
>> sous-jacentes.
>>
>> Aussi, je me demande on ne ferait carrément pas mieux de
>> concevoir une
>> interface SearchIndexManager avec une classe LuceneSearchIndexManager.
>Je ne comprends pas. C'est déjà le cas avec Database et LuceneDatabase,
>non?
Mmmh... je ne crois pas. Quand on est dans une LuceneDocumentBase, on stocke
l'index de recherche avec Lucene *et* les métadonnées sytème également avec
Lucene. Ce que je voudrais, c'est une *délégation* du style de celle des
repositories que, je le répète, trouve excellente. On pourrait avoir un
LuceneMetadataManager (qui à l'heure actuelle est complètement encapsulé dans
la LuceneDocumentBase), un JDBCMetadataManager etc. De le même façon, on
pourrait avoir également un LuceneSearchIndexManager (encapsulé lui-aussi), un
JDBCSearchIndexManager...
L'avantage serait :
- de ramener la classe DocumentBase à une classe indépendante des architectures
sous-jacentes. Plus besoin d'interface ni de classe abstraite...
- de pouvoir disposer d'un système d'évènements bien plus fin. En l'état actuel
des choses, il m'est très difficile de transmettre à un gestionnaire
d'évènements le XML résultant de la XSL d'indexation.
- de permettre, pour ceux que ça intéresserait, de stocker différentes choses
sur différentes architectures.
Note : dans un premier temps, une architecture Lucene serait selon moi
suffisante !
Pour être plus démonstratif :
au lieu de :
<sdx:documentBase id="apps" type="lucene" default="true">
<sdx:repositories>
... rien à changer ici ; c'est *très bien *
</sdx:repositories>
</sdx:documentBase>
j'aimerais :
<sdx:documentBase id="apps" default="true">
<sdx:systemMetadataRepository type="jdbc"/>
<sdx:searchIndexRepository type="lucene"/>
<sdx:repositories>
... rien à changer ici ; c'est *très bien *
</sdx:repositories>
</sdx:documentBase>
Les noms sont bien sûr indicatifs ! Mais bon, pour moi, on a un modèle :
<!ELEMENT documentBase (systemMetadataRepository, searchIndexRepository,
repositories+)>
> Si tu veux stocker des métadonnées en MySQL, alors tu développes
> une classe MySQLDatabase qui implante Database. Ensuite on permet de
> configurer (dans app.xconf) quel type de gestionnaire de métadonnées
> utiliser. Ce n'est pas suffisant?
Euh... c'est le repository qui serait sous MySQL et, effectivement, il y a une
classe pour ça qui m'a l'air d'être au point. Les métadonnées, j'aimerai
effectivement les mettre sous MySQL qui sait en principe convenablement les
gérer. En revanche, pour l'index de recherche, Lucene reste pour l'instant le
meilleur.
>Je ne sais pas si tu veux unifier la recherche documentaire effectuée
>avec Lucene avec la gestion de métadonnées gérée par l'interface
>Database, mais pour moi ça ne devrait pas.
Non, non. Sois sans crainte à ce sujet.
> SDX est un outil de recherche, et la DocumentBase est justement ce lieu
> qui est cherchable. Pour l'instant, le seul moteur de recherche est
> Lucene, mais éventuellement il y en aura d'autres. D'où l'idée de
> l'interface et de la classe abstraite.
J'ai bien compris, mais telle que cette classe est foutue, toute nouvelle
classe nécessitera pas mal de codage car cette classe a à gérer non seulement
la délégation aux repositories (ce qui est simple) mais également la création
du document d'indexation, son mapping sur une architecture et la gestion des
métadonnées sytème. Pour faire court, là où il y a une seule classe, j'en
voudrais 3 (voire 4 si l'on considère que génération du document XML
d'indexation et mapping du searchIndex sont deux choses différentes). Que cela
ne fasse pas peur : tout ce code existe déjà !
> Par exemple, il sera assez facile d'ajouter une classe XMLDBDocumentBase
> qui fera des recherches Xpath dans un entrepôt de type XMLDB. Un jour
> qu'il y aura un bon moteur XMLQuery, on l'implante, etc. Et SDX peut
> donc intégrer différents moteurs de recherche, l'élément commun étant
> justement cette interface DocumentBase.
J'ai bien saisi et je suis effectivement persuadé que de sotcker le XML
d'indexation *en natif* (d'où l'idée de 4 classes) devrait apporter de la
performance. J'attends avec impatience le match contre Lucene !
> L'architecture actuelle est justement prévue pour cela. Je ne comprends
> pas ce qui manque (à part des trucs à implanter).
J'espère avoir été clair. Si ce n'est pas le cas, je vous derai un
éventuellement un dessin montrant une classe DocumentBase délégant à 3 types de
repositories pouvant les uns et les autres s'appuyer sur des architectures
différentes...
p.b.
- [sdx-developers] documentbase, Pierrick Brihaye, 2002/06/08
- RE : [sdx-developers] documentbase, Martin Sévigny, 2002/06/10
- Re: RE : [sdx-developers] documentbase, Pierrick Brihaye, 2002/06/10
- [sdx-developers] RE : documentbase, Martin Sévigny, 2002/06/10
- Re: [sdx-developers] RE : documentbase,
Pierrick Brihaye <=
- Re: [sdx-developers] RE : documentbase, Pierrick Brihaye, 2002/06/10
- RE : [sdx-developers] RE : documentbase, Martin Sévigny, 2002/06/11
- Re: RE : [sdx-developers] RE : documentbase, Pierrick Brihaye, 2002/06/11
- RE : RE : [sdx-developers] RE : documentbase, Martin Sévigny, 2002/06/11
Re: [sdx-developers] documentbase, Frédéric Glorieux, 2002/06/11