je réponds par rapport à ce que je fais en import de notices (par le menu
admin ou par les résultats d'une recherche z3950) :

nous disposons de trois zones :

résumé
contenu
général

celles-ci sont stockées séparément mais font l'objet d'un index fulltext
unique.

ceci implique que la syntaxe de la requete si on utilise match against fasse
appel aux trois colonnes, telles que décrites dans la création de l'index
fulltext.

si on veut distinguer les champs de recherche, il faut distinguer les index
fulltext. En outre, en Oracle, un index interMedia (= ancien index
OracleText pour les connaisseurs) ne peut porter que sur une seule colonne.
Je ne sais pas encore ce que ça donne avec PostgreSQL, mais pour l'instant
Oracle est beaucoup plus 'fin' que MySQL, il va donc falloir coller à cela
au minimum.

Je résume les champs de recherche :

colonne                colonne préparée           index
tit#                   index_tit#                 index_serie
serie.serie_name       index_serie                index_serie
    (l'index fulltext index_serie contient index_tit#+index_serie)
n_gen                  index_matiere              index_matiere
n_resume               index_matiere              index_matiere
n_contenu              index_matiere              index_matiere
    (l'index fulltext i_contenu_resume contient n_resume+n_contenu)
index_l                aucune                     aucun
    (indexation libre : les mots clés renseignés)

je propose des créer les colonnes ad hoc pour les recherches :
-rassembler les titres, la série et l'indexation libre dans une colonne
préparée
    >>index_titres = strip_empty_words
(tit1+tit2+tit3+tit4+serie_name+index_l)
        de la sorte, les mots clés font sortir un livre en recherche
'titre', c'est bien le but des mots clés ?
-rassembler les notes générales et notes de résumé
    >>index_notes = strip_empty_words (n_gen+n_resume)
-distinguer les notes de contenu
    >>index_contenu = strip_empty_words (n_contenu)
        de la sorte, le contenu = les titres des morceaux d'un CD par ex,
est bien distingué en recherche.

coté recherche, ça donnerait :
-recherche par titre : recherche match against sur index_titres
    résultats : les oeuvres dont le ou les titres ou dont le nom de la série
ou dont les mots clés contiennent le mot cherché. Exemple : "Aïda" : Verdi :
Aïda, opéra...

-recherche par résumé/général
    résultats : les oeuvres dont le résumé ou les notes générales
contiennent le mot cherché. Exemple = "Suez" >> Verdi : Aïda, opéra commandé
par le roi d'Egypte pour se faire pardonner son opposition à la construction
du canal de Suez

-recherche par notes de contenu
    résultats : les oeuvres dont le contenu contient le mot cherché. Exemple
: "triomphale" >> Verdi : Aïda, Acte II scène 2 : la marche triomphale

Est-ce que c'est suffisant ? Doit-on distinguer les titres plus finement ?
Auquel cas il faudra conserver les colonnes actuelles index_tit# et leur
créer les index fulltext correspondant.
Doit-on distinguer le titre de la série ?

Il faut bien avoir à l'esprit que toutes les dinstinctions faites au sein de
la structure de la base doivent se retrouver au niveau des possibilités de
recherche dans l'interface, sinon quel en est l'intérêt ? SI je me place
coté OPAC : le lecteur lambda aura certainement plus de facilité à chercher
avec UN SEUL champ partout que de devoir préciser où il veut chercher,
peut-être faudra-t-il créer une colonne pour cela = strip_empty_words
(tout_ce_qu_on_a) mais ça peut faire sortir des titres qui n'ont que très
peu de rapport avec le mot cherché, uniquement parce que le mot clé apparait
dans le contenu : exemple : je cherche un bouquin dont le titre contient
"triomphale" et ça me sort Aïda de Verdi...

Qu'en pensez-vous ?

Eric




   résultats : les oeuvres dont le contenu contient le mot cherché.



----- Original Message ----- 
From: "François Lemarchand" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, December 01, 2003 7:58 AM
Subject: [PMB-DEVEL] Question


> J'ai pas mal avancé dans le module catalogage.
>
> Reste un pb. : l'onglet 'autre recherches'. Le FULL INDEX sur note de
contenu et
> note de résumé est en place sous la forme d'un index commun aux deux
zones. Pour
> l'instant, cela fonctionne donc à grands coups de regexp. Donc à votre
avis, que
> doit-on faire ? supprimer la distinction entre les champs ? (
Personnellement,
> cela ne me dérange pas outre mesure : Je ne suis plus discothécaire ;-).
Ou
> alors splitter cet index FULL TEXT en deux. A moins que malgré l'unicité
de
> l'index, le fulltext puisse taper indifférement dans l'une ou l'autre zone
? (y
> compris lors du switch vers POsTGRES/ORACLE) ?. Note : Par rapport au
notes de
> contenu, cela peut évoluer dans un proche avenir. En effet, je pense qu'on
> pourrait mettre en place un système de dépouillement comparable à celui
des
> périodiques pour les monographies. Ceci permettrait de traiter les cas de
> regroupements d'oeuvres en un seul volume. Du coup la zone de notes de
contenu
> se trouverait réduite à recevoir des infos moins importantes (exemple :
> 'contient des livre écrits par Machin dans sa jeunesse', ou le classique :
> 'Bibliogr.' pour indiquer que l'ouvrage contient une bibliographie).
>
> A+
>
> -- 
> François Lemarchand
> homepage : http://balno.free.fr/
> phpmybibli : http://phpmybibli.sf.net/
>
> Liste de diffusion phpmybibli.devel
> Pour se désinscrire :
mailto:[EMAIL PROTECTED]
>
>


Liste de diffusion phpmybibli.devel
Pour se désinscrire : mailto:[EMAIL PROTECTED]

Répondre à