Notes techniques concernant la version 3.5 de PMBImplications de la nouvelle recherche dans PMB 3.5 > Notes pour la migration de la version 3.4 à la version 3.5
page précédentepage suivante

Notes pour la migration de la version 3.4 à la version 3.5

Sauvegarde

Il est fortement conseillé de faire une sauvegarde de la base de données et de vérifier la validité de la sauvegarde en la restaurant avant la migration en 3.5.

Voici les éléments à étudier ou a prendre en compte avant le passage en 3.5.

Mise à jour de la base de données

Réinitialisation de la table notices_mots_global_index

La table notices_mots_global_index était déjà existante dans PMB (mais peu utilisée) pour calculer la fréquence des mots afin de proposer les mots vides en autorité > sémantique.

Le structure de cette table est modifiée lors de la mise à jour des données. Comme elle contient un grand nombre de lignes, la table notices_mots_global_index est tronquée (c.a.d. vidée)  avant la modification de sa structure pour éviter des temps d'attente trop longs.

Cette opération est réalisée en v5.02 du noyau de la base de données.

Si après la ré-indexation de la base de données, vous changez le paramètre général bdd_version pour une version antérieure à v5.02, l'index sera écrasé et une ré-indexation complète est nécessaire.

Ré-indexation

Après la mise à jour de la base de données, il est impératif de ré-indexer la totalité des champs en Administration > Outils > Nettoyage de base. Cochez

Réindexer l'index global

Réindexer tous les champs de recherche

Et lancez la ré-indexation. Attention, la ré-indexation est très longue (6 à 8 heures pour 100 000 notices).

Fichiers personnalisables

Fichiers subst de la recherche multi-critère OPAC

Si vous n'avez jamais personnalisé votre recherche multi-critère, ce paragraphe ne vous concerne pas.

Substitution du fichier search_fields.xml

Si vous disposez d'un fichier opac_css/includes/search_queries/search_fields_subst.xml qui personnalise la recherche multi-critères, des modifications sont à apporter dans les critères de recherche BOOLEAN.

Convertir les critères booléens dans le nouveau système de recherche

Exemple pour le titre

Trouver le critère de recherche booléen sur le titre

Repérez dans le fichier la ligne : <field title="msg:title_search" id="1" separator="msg:champs_principaux_query">.

Après cette ligne, recherchez la première ligne commençant par <query for="BOOLEAN" booleanSearch="yes">

Convertir le critère à la nouvelle recherche

Dans la ligne <query for="BOOLEAN" booleanSearch="yes"> repérée, remplacez l'attribut booleanSearch="yes" par wordSearch="yes"

Remplacez le bloc sous le tag query repéré précédemment  :

<main><![CDATA[select notice_id, !!pert_term!! as pert from notices where !!where_term!! group by notice_id order by pert desc, index_serie, tnvol, index_sew]]></main>

<table>notices</table>

<index_l>index_wew</index_l>

<index_i>index_sew</index_i>

<id_field>notice_id</id_field>

Par :

<class>searcher_title</class>

Au final, vous devez obtenir pour le critère booléen :

<query for="BOOLEAN" wordSearch="yes">

<class>searcher_title</class>

</query>

Vous pouvez répéter l'opération pour tous les critères BOOLEAN dans le tableau ci-dessous. N'oubliez pas de changer l'attribut booleanSearch en wordSearch ! 

id du champ

title

classe de recherche

42

msg :global_search

<class>searcher_all_fields</class>

2

msg:author_search

<class>searcher_authors</class>

3

msg:publisher_search

<class>searcher_publishers</class>

4

msg:coll_search

<class>searcher_collection</class>

5

msg:subcoll_search

<class>searcher_subcollection</class>

6

msg:serie_query

<class>searcher_serie</class>

51

msg:titre_uniforme_search

<class>searcher_uniform_title</class>

7

msg:note_generale_search

<class>searcher_general_note</class>

8

msg:note_contenu_search

<class>searcher_contents_note</class>

9

msg:note_resume_query

<class>searcher_abstract</class>

10

msg:toutes_notes_query

<class>searcher_notes</class>

11

msg:categories_search

<class>searcher_categorie</class>

12

msg:indexint_search

<class>searcher_indexint</class>

13

msg:keyword_search

<class>searcher_keywords</class>

Vous pouvez aussi ajouter la recherche booléenne aux champs personnalisés.

Ajouter la recherche booléenne aux champs personnalisés

Repérer la zone des champs personnalisés concernée

Dans le fichier repérez la ligne <dynamicFields>

Sous <fieldtype="notices" prefix="d"> ou directement sous <dynamicFields>, repérez la ligne <field dataType="small_text" id="1">.

Ajouter le critère de recherche booléen

Juste sous la ligne <field dataType="small_text" id="1">, insérez les trois lignes :

<query for="BOOLEAN" wordSearch="yes" searchableOnly="yes" notAllowedFor="list,query_list,date,external,resolve">

<class>searcher_pfield</class>

</query>

Répétez la même opération pour le deuxième type de champ personnalisé

Repérez la ligne <field dataType="text" id="2"> et insérez le même tag <query [...] que pour le champ précédent.

Recherche personnalisée OPAC

Si votre recherche simple dans l'OPAC n'est pas personnalisée (c'est à dire pas de filtrages autre que le type de document au dessus de la case de recherche), ce paragraphe ne vous concerne pas.

Si vous utilisez un fichier de recherche personnalisé dans l'OPAC (vérifiez le paramètre Opac > search_other_function), le fichier doit être modifié pour fonctionner correctement avec la nouvelle recherche.

Nous avons fait les adaptations sur les fichiers présents par défaut dans PMB (comme mrps.inc.php). Si vous utilisez un de ces fichiers, tout doit fonctionner normalement après la mise à jour.

Dans le cas où vous avez un fichier personnalisé, désactivez-le (videz la valeur du paramètre). Une documentation spécifique est en cours de rédaction pour vous permettre de l'adapter.

page précédentepage suivante
A propos...PMB ServicesRéalisé avec Scenari