Les Blogs Tangane

La recherche avancée avec DotNetNuke

sept. 28

Par : Cyril Plassard
28/09/2011 13:45  RssIcon

L’un des avantages que propose l’édition Professional de DotNetNuke, c’est de bénéficier d’un service de recherche avancée : le « Search Crawler ».

Tous les utilisateurs de l’édition Community seront d’accord avec moi, le moteur de recherche a toujours été le gros point faible de DotNetNuke.
Indexation aléatoire, caractères accentués non pris en charge, présentation des résultats de recherche…
Combien de développeurs se sont arraché les cheveux sur l’implémentation de l’interface Isearchable ? Surement beaucoup quand je vois le nombre de modules commerciaux qui ne sont pas pris en compte par la recherche.

Bien sûr, il existe des solutions alternatives disponibles sur le marché, j’ai vu aussi certains projets open source prometteurs, mais il devenait crucial qu’une solution pérenne soit proposée par l’équipe de développement de DotNetNuke.

Depuis la version 5.6.0 c’est donc un « vrai » moteur de recherche qui est fourni avec l’édition Professional.

Ce moteur s’appuie sur le célèbre projet Lucene.

Voici donc les caractéristiques fournies par DotNetNuke :

  • Syntaxe de recherche avancée.

Recherche avancée

  • Permet d’indexer plusieurs sites (quelle que soit la technologie employée sur les autres sites).

Multi Site

  • Indexation de documents Microsoft Office (Word, Excel et PowerPoint) et PDF.
  • Intégration des mécanismes de sécurité de DotNetNuke lors de l’indexation du site.
  • Indexation pouvant être effectuée en utilisant un rôle de sécurité particulier. C’est-à-dire que vous pouvez indexer le site comme si le moteur se comportait comme un utilisateur d’un groupe particulier. Par exemple, les résultats d’une recherche effectuée par un utilisateur anonyme ne seront pas forcément similaires à ceux qui auront été générés par un utilisateur enregistré (membre, client…).

Params crawl

  • Les tags et les métadonnées contenus dans une page ou un document sont pris en compte lors de la recherche.
  • Champ de recherche implémenté comme un Skin Object. C’est-à-dire que vous pouvez poser directement votre champ de recherche dans une skin. Il n’est donc pas nécessaire d’ajouter un module « Search Input » sur toutes les pages.
  • Périmètre de recherche configurable. Chaque module d’affichage des résultats « Search Result » peut être configuré pour limiter la recherche à certains sites que le moteur a indexés.

perimetre recherche

  • Compatible avec les directives META "no index" et "no follow" des moteurs de recherche.
  • Exclusion automatique des modules anonymes. Les pages comme « Terms », « Privacy », « Login » et « Register » sont en fait des modules qui sont chargés dans la même page sur laquelle l’utilisateur est positionné. C'est à dire que le même contenu peut être accessible à partir de plusieurs URL. Ce comportement peut être assez gênant lorsque vous faites une recherche sur un mot ou une expression présente dans votre page « confidentialité ». Ainsi ce nouveau moteur de recherche ne fera apparaitre qu’une seule fois la page concernée dans les résultats.

Voici la syntaxe qui va vous permettre d’utiliser la puissance de ce nouveau moteur de recherche : 

Requête

Exemple

Notes

Mot unique

document

Va effectuer une recherche en utilisant le mot unique « document ».

Phrase

"document important "

Va effectuer une recherche en utilisant la phrase « document important ».

Recherche dans les champs

title:document

Va rechercher les documents ou les pages qui ont pour titre le mot “document ».

Recherche Joker
(wildcard search)

doc?ment

Va effectuer une recherche en utilisant un caractère joker. Les résultats pourront correspondre à « document » ou « dociment » mais pas « docooment ».

document*

Va effectuer une recherche en utilisant des caractères joker. Les résultats pourront correspondre à « document » ou « documentation ».

Recherche approximative
(fuzzy search)

docment~

La recherché sera effectuée en utilisant une orthographe approximative. Les résultats pourront correspondre à « document ».

document~0.9

La recherché sera effectuée en utilisant une orthographe similaire. 0.9 est ici la similarité demandée.
Par défaut la similarité est de 0.5.

Recherche à proximité

"document important "~5

Recherche des mots ou une phrase qui ne sont pas collés les uns aux autres. Dans cet exemple, la distance est de 5 mots.

Recherche par bornes
(range search)

author:{Einstein TO Newton}

Recherche des documents dont le champ « author »  contient une valeur comprise entre les bornes spécifiées.

date:{20050101 TO 20050201}

Recherche des documents dont le champ « date »  contient une valeur comprise entre les dates spécifiées.

Pertinence

document important^4

Multiplie par 4 le facteur de pertinence du terme « important ».
Le facteur de pertinence par défaut est 1.

"document  important "^4 "moteur de recherche"

Vous pouvez également utiliser le facteur de pertinence pour des phrases.

Opérateur OR (ou)

document  important

« OR » est l’opérateur par défaut

document  OR important

Les résultats de la recherche devront contenir « document » OU « important ».

Opérateur AND (et)

document  AND important

Les résultats de la recherche devront contenir les deux mots.

Opérateur +

document +important

Les résultats de la recherche devront contenir le mot « important » et pourront contenir le mot « document ».

Opérateur NOT/- (sauf)

document -important

Les résultats de la recherche devront contenir le mot « document » mais pas le mot « important ».

Regroupement

(important OR bureau) AND document

Vous pouvez utiliser des parenthèses pour effectuer des requêtes de regroupement.

author:(Einstein OR Newton)

Les parenthèses fonctionnent également sur les champs.


Reqêtes interdites :

Requête

Exemples

Notes

Joker au début d’un terme

?ocument, *ocument

Retourne une erreur  Lucene.Net.QueryParsers.ParseException.

Mots communs (stop words)

un, le, et,
a, the, and

En fonction de la langue choisie, les mots communs ne sont pas indexés.

Caractères spéciaux : && || ! ( ) { } [ ] ^ " ~ * ? : \

\?, \:

Utiliser la barre inverse \ pour échapper les caractères.

*Source DotNetNuke Professional Edition, traduction français Tangane

Après avoir indexé le site de Tangane via le moteur de mon intranet de test, voici ce que retourne la requête  ("connecteur sharepoint" AND DotNetNuke) OR "logo sharepoint" :

resultat recherche

Voici donc un aperçu de ce module qui à lui seul justifie le passage d’une édition Community à une édition Professional voir Enterprise.

Vous pouvez télécharger une version d’évaluation de l’édition Professional à cette adresse : http://www.dotnetnuke.com/Products/Professional-Edition-Trial.aspx

Bien sûr, vous pouvez contacter nos équipes pour vous accompagner dans la mise en œuvre de DotNetNuke, quelle que soit l'édition que vous utilisez.

Copyright © Tangane 2011


Votre Nom :
Titre :
Commentaire :
images CAPTCHA
Saisissez le code de sécurité.
Commenter   Annuler 
  • NOS OFFRES
  • Conseil et accompagnement
  • Conception et réalisation
  • Déploiement, maintenance et
    animation
  • NOS ATOUTS
  • Une approche unique
  • Une équipe expérimentée

CONTACTEZ NOUS

  • PARIS
  • 132, boulevard Camelinat
  • 92240 Malakoff
  • Tél : +33 1 49 85 97 06
  • Mail : contact@tangane.com