Accéder au contenu principal

Oracle SES: Indexation d’un référentiel hétérogène

Version utilisée: Oracle SES 10.1.8.4

Oracle Secure Enterprise Search (SES) est un moteur de recherche multi-sources.

Ce topic concerne l’indexation d’un système d’information dont les documents sont stockés en tant que pièces attachées sur un système de fichiers et dont les méta-données, associées à ces documents, sont enregistrées dans une base de données

L’exemple qui suit concerne l’indexation d’un logiciel de wiki.

Echantillon d’un post relatif à une fiche produit :

clip_image002

On attache un document (CompProfFC900.pdf) à ce post

clip_image004

Le besoin exprimé est de permettre une recherche incluant à la fois les données stockées dans un SGBD (métadonnées du wiki) et le contenu des fichiers en attachement (sur le file system)

Il s’agit d’un cas de figure qui est couvert par l’usage du connecteur Database Source qui est disponible avec le produit Oracle SES.

Avec ce type de connecteur, on peut parcourir n’importe quelle source accessible via le protocole JDBC. La source peut être définie soit comme une vue (au sens sql du terme) soit par une requête SQL.

Chaque enregistrement est alors interprété comme un document.

La vue ou bien la requête SQL doit retourner au minimum les colonnes suivantes :

  • URL
  • CONTENT
  • LASTMODIFIEDDATE
  • KEY
  • LANG

Les colonnes optionnelles sont :

  • PATH
  • ATTACHMENT_LINK
  • ATTACHMENT
  • CONTENTTYPE
  • TITLE

Lorsque le corps du document est sous la forme d’un fichier stocké à l’extérieur de la base de données (sur un système de fichier par exemple), c’est la colonne ATTACHMENT_LINK qui doit contenir le lien au format http:, ftp: ou file:.

Même si le document est en attachement, la colonne CONTENT doit être présente, (pointant sur une valeur nulle, par exemple)

Mais c’est bien le document pointé par ATTACHMENT_LINK qui sera indexé.

Prenons l’exemple du logiciel de Wiki évoqué plus haut.
Le modèle de données est celui-ci :

  • Table de nœuds : NODES
  • Tables des métadonnées : VERSIONS
  • Tables des attachements : ATTACHMENT

C’est la table ATTACHMENT qui contient les liens vers les fichiers en attachement.

Dans notre exemple, la localisation des fichiers en attachement sur le file system est :

E:\oracle\wls\user_projects\domains\services\owc\owc_wiki\attachments\owc_wiki\<Nom_du_post>\<nom_fichier>

clip_image006

clip_image008

Il est nécessaire de constituer, soit une vue, soit une requête au format SQL qui retournera, au minimum, les colonnes qui ont été mentionnées plus haut.

Voici un exemple de requête pour l’exemple du wiki :

SELECT
docserver?doc_id=' T1.vid AS URL,
T1.VID AS KEY,
'en' AS LANG,
SYSDATE AS LASTMODIFIEDDATE,
T1.CONTENT AS CONTENT,
'file://ten.mydomain.com/E:/oracle/wls/user_projects/domains/se
vices/owc/owc_wiki/attachments/owc_wiki/'
T2.pagename'/'T2.filename as
ATTACHMENT_LINK
FROM
VERSIONS T1,
ATTACHMENT T2,
NODES T3
WHERE T1.nodeid = T3.nid and
T3.name = T2.pagename

Cette requête doit être fournie comme un des paramètres du connecteur qui sera destiné à l’indexation du référentiel de wiki :

clip_image010

Le panneau précédent correspond au paramétrage d’un nouveau connecteur de type Database Source. Tout Sgbd disposant d’un driver jdbc est utilisable avec ce connecteur.

Les considérations liés à la sécurité sont également définies de façon similaire, sous réserve de connaître le modèle de données de la source. En particulier, la requête principale doit comporter un attribut qui indique quel est le niveau de visibilité (colonne AUTH_ID dans ce cas particulier)

clip_image012

Le panneau précédent permet d’indiquer quel sera le filtre de sécurité. Ici, on fait référence à l’attribut AUTH_ID qui avait précisé auparavant, et on définit une requête qui positionne le niveau de visibilité en fonction de l’utilisateur connecté.

Lancement de l’Ordonnanceur d’indexation

A l’issue du lancement de la phase de crawling (programmée ou bien manuelle), Oracle SES fournit un rapport relatif à l’indexation :

clip_image014

Conclusion

Il est possible de faire prendre en compte au moteur de recherche Oracle SES un nouveau système d’information, et cela de façon déclarative.

Commentaires

Posts les plus consultés de ce blog

Oracle Sites Cloud Service - Adding authentication to a site

With Oracle Sites Cloud Services, access to any site is Public, by default. If you have to add authentication, there is a very simple way to achieve it: First, we assume that authentication will be against the existing Identity Domain provided with the tenant. In a dedicated page of a site, called Login for instance, we add an App component which embeds an URL to any folder of Documents Cloud Service. ie: App URL =  https://documents.XX.oraclecloud.com/documents/ embed /home/nameasc Note that the URL will be called with the EMBED keyword . Then we add the App component is a region, and  we setup a height=1 and a width=1 (almost invisible). That's all. Each time a user will navigate to this custom   Login Page, and if the user is not yet authenticated, a new page will splash on the screen, asking for credentials. Once login and pasword are provided by the user, the page disapears and return to custom Login page. Optionnaly it's possible to add a dedicated butt

Auschwitz

 Quelques livres à propos des camps d'Auschwitz La mort est mon métier (Robert Merle) - 1952 Roman avec Rudolf Hoess (responsable camps d'Auschwitz) comme personnage principal Si c'est un homme (Primo Levi) - 1947 Témoignage de Primo Levi sur sa captivité à Auschwitz Les médecins d'Auschwitz (Bruno Halioua) - 1922 Etude sur l'organisation des services de médecine à Auschwitz Je me suis évadé d'Auschwitz (Rudolf Vrba) - 2004 Récit d'un captif qui a réussi à s'échapper d'Auschwitz Shoah  (Claude Lanzmann) - 1985 Dialogues du film "Shoah" Sonderkommando : Dans l'enfer des chambres à gaz  (Shlomo Venezia ) Entretien avec un ancien prisonnier qui a tenu le rôle de sonderkommando (manipulation des corps dans les chambres à gaz) Auschwitz I Birkenau

Streaming mp3 fromVLC / Icecast to Android

Here are some tips for streaming music to android mobile devices from a PC. Platform which has been used fo test: Ubuntu 11.10 oneiric + a NAS for storing music (windows can fit as well) Videolan VLC 1.1.12 (providing mp3 flow) icecast 2.3.2 (shoutcast radio) Winamp 1.2.12 for Android mobile(music player) Android-vlc-remote for Android (remote control for VLC) Start icecast server icecast2 -c icecast.xml The icecast xml config file is the original one. don't modify anything at this stage.  Setup VLC in order to stream mp3 instead ogg format Close VLC Prepare a playlist (ie: scarlatti.m3u) with Banshee or whatever. Launch VLC in command line vlc scarlatti.m3u --sout '#standard{access=shout,mux=ogg,dst=source:hackme@192.168.0.3:8000/scarlatti}' --sout-keep --extraintf=luahttp --fullscreen --http-album-art     Check that icecast is displaying a mount point for the new radio Check the HTTP acces