Les conditions dans les types de résultats : Types de contenus ou types de contenus ?

En allant plus avant dans la création de nouveaux types de résultats pour la présentation de résultats de recherche personnalisés, je me suis heurté à un élément de langage que je qualifierais pour le moins de déroutant.

D’où proviennent ces « types de contenus » (Figure 1-Liste des types de contenus) que l’on doit insérer comme condition d’un type de résultat. En cherchant dans les types de contenus de mon site, je n’ai rien trouvé comme correspondance.

result_types_1

result_types_2

Figure 1-Liste des types de contenus

La dénomination en anglais est légèrement moins déroutante (je plaisante) : on parle de « site content types » pour les types de contenus que vous connaissez déjà bien et de « types of content » (Figure 2) pour les éléments de conditions de « Result Types ».

result_types_3

Figure 2-Type of content

La liste des types de contenu (ou types of content) est non modifiable.

Elle provient d’un dictionnaire interne de type <string, PropertyRule> de la classe Microsoft.Office.Server.Search.Administration.MappedPropertyRules imbriquée dans la classe Microsoft.Office.Server.Search.Administration.PropertyRule

Le fait de sélectionner « Microsoft Word » comme type de contenu dans la liste est équivalent à définir les conditions suivantes sur la propriété personnalisée « FileType » : FileType= »docx » OR FileType= »doc » OR FileType= »docm » OR FileType= »dot » OR FileType= »dotx »

Pour être plus parlant les 2 cas suivants sont totalement identiques :

Cas 1 : Définition de conditions par type de contenu

result_types_4

Cas 2 : Définition de conditions par propriétés

result_types_5

Vous trouverez ci-dessous un tableau des équivalences :

Condition « Type de contenu » Condition avec propriétés personnalisées équivalentes
Microsoft Access
FileType="accdb" OR FileType="accdc"
OR FileType="accde" OR FileType="accdr"
OR FileType="accdt"
Microsoft Excel
FileType="xls" OR FileType="xlsx"
OR FileType="xlsm" OR FileType="xlsb"
OR FileType="xltm" OR FileType="xltx"
OR FileType="xlam"
Microsoft OneNote
FileType="one"
Microsoft PowerPoint
FileType="ppt" OR FileType="pptx"
OR FileType="pptm"
Microsoft Publisher
FileType="pub"
Microsoft Visio
FileType="vdw" OR FileType="vdx"
OR FileType="vsd" OR FileType="vss"
OR FileType="vst" OR FileType="vsx"
OR FileType="vtx"
Microsoft Word
FileType="docx" OR FileType="doc"
OR FileType="docm" OR FileType="dot"
OR FileType="dotx"
Discussion
StartsWith(ContentTypeId,"0x012002")
Répondre
StartsWith(ContentTypeId,"0x0107")
Courrier électronique
FileType="eml" OR FileType="msg"
OR FileType="exch"
Image
FileType="bmp" OR FileType="dib"
OR FileType="jpeg" OR FileType="png"
OR FileType="gif" OR FileType="rle"
OR FileType="wmf" OR FileType="ico"
OR FileType="wpd" OR FileType="odg"
OR FileType="tiff"
PDF
FileType="pdf"
Texte
FileType="odt" OR FileType="txt"
OR FileType="url" OR FileType="csv"
Vidéo SharePoint
StartsWith(ContentTypeId),"0x0120D520A808"
OR SecondaryFileExtension="wmv"
OR SecondaryFileExtension="avi"
OR SecondaryFileExtension="mpg"
OR SecondaryFileExtension="asf"
OR SecondaryFileExtension="mp4"
OR SecondaryFileExtension="ogg"
OR SecondaryFileExtension="ogv"
OR SecondaryFileExtension="webm"
XML
FileType="xml" OR FileType="infopathml"
Zip
FileType="zip"
Blog SharePoint
WebTemplate="blog"
Communauté SharePoint
WebTemplate="COMMUNITY"
Forum de discussion SharePoint
contentclass="sts_list_discussionboard"
OR contentclass="sts_listitem_discussionboard"
Bibliothèque de documents SharePoint
contentclass="sts_list_documentlibrary"
Liste SharePoint
contentclass="sts_list" OR contentclass="sts_list_432"
OR contentclass="sts_list_genericlist"
OR contentclass="sts_list_agenda"
OR contentclass="sts_list_announcements"
OR contentclass="sts_list_contacts"
OR contentclass="sts_list_events"
OR contentclass="sts_list_issuetracking"
OR contentclass="sts_list_links"
OR contentclass="urn:content-class:spspeople"
OR contentclass="sts_list_gantttasks"
OR contentclass="urn:content-classes:spssiteregistry"
OR contentclass="sts_list_tasks"
Billet Microblog SharePoint
StartsWith(ContentTypeId,
"0x01FD4FB0210AB50249908EAA47E6BD3CFE8B")
OR StartsWith(ContentTypeId,
"0x01FD59A0DF25F1E14AB882D2C87D4874CF84")
Bibliothèque d’images SharePoint
contentclass="sts_list_picturelibrary"
Site SharePoint
contentclass="sts_site"
OR contentclass="sts_web"
Enquête SharePoint
contentclass="sts_list_survey"
OR contentclass="sts_listitem_survey"
Wiki SharePoint
StartsWith(ContentTypeId),"0x010108")
OR StartsWith(ContentTypeId),
"0x010100C568DB52D9D0A14D9B2FD
CC96666E9F2007948130EC3DB06
4584E219954237AF39004C1F8B4
6085B4d22B1CDC3DE08CFFB9C")
Élément de la liste des bibliothèques d’images SharePoint
contentclass="sts_listitem_picturelibrary"
Élément de liste SharePoint
contentclass="sts_listitem_6510"
OR contentclass="sts_listitem_contacts"
OR contentclass="sts_listitem_events"
OR contentclass="sts_listitem_issuetracking"
OR contentclass="sts_listitem_links"
OR contentclass="urn:content-classes:spslisting"
OR contentclass="urn:content-class:spslisting:news"
OR contentclass="urn:content-classes:spspersonlisting"
OR contentclass="sts_listitem_gantttasks"
OR contentclass="urn:content-class:spssearchquery"
OR contentclass="urn:content-classes:spssitelisting"
OR contentclass="sts_listitem_tasks"
OR contentclass="urn:content-classes:spstextlisting"
OR contentclass="sts_listitem_genericlist"
Page web
FileType="html" OR FileType="mhtml"
AND contentclass!="sts_listitem_documentlibrary"
Fichier Vidéo
SecondaryFileExtension="wmv"
OR SecondaryFileExtension="avi"
OR SecondaryFileExtension="mpg"
OR SecondaryFileExtension="asf"
OR SecondaryFileExtension="mp4"
OR SecondaryFileExtension="ogg"
OR SecondaryFileExtension="ogv"
OR SecondaryFileExtension="webm"

Pour terminer, un petit script Windows PowerShell pour énumérer les types de résultats et leurs conditions par défaut au niveau d’une collection de sites. Il vous permettra de vérifier la correspondance entre une condition par défaut (type de contenu) et un ensemble de conditions personnalisées.

# Définition du site SharePoint
$siteUrl = "http://intranet.contoso.com";
$site = Get-SPSite $siteUrl;

# Définition d'un objet SearchObjectOwner
# pour récupérer le paramétrage de recherche
$searchOwner = New-Object 
  Microsoft.Office.Server.Search.Administration.SearchObjectOwner(
  [Microsoft.Office.Server.Search.Administration.SearchObjectLevel]::SPSite,
  $site.RootWeb);

# get current search service application
$sspApp = Get-SPEnterpriseSearchServiceApplication;

# Création d'un ResultItemTypeManager à partir
# d'une application de service de recherche
$resMgr = New-Object
  Microsoft.Office.Server.Search.Administration.ResultItemTypeManager($sspApp);

# Récupération des types de résultats liés
$resMgr.GetResultItemTypes($searchOwner, $false) | % {
  Write-Host ("{0}" -f $_.name) -foregroundcolor cyan;
  foreach ($pr in $_.Rules.PropertyRules) {
    Write-Host (" PropertyRule={0}" -f $pr) -foregroundcolor yellow;
  };
}

Travailler efficacement grâce à SharePoint 2013 #1

Dans les entreprises, des outils modernes et simples contribuent à travailler de manière efficace avec ses collaborateurs. Pour répondre aux enjeux économiques de demain, il est nécessaire d’avoir une collaboration sans failles.

SharePoint 2013 en version on premise ou sur Office 365 apporte une brique de services collaboratifs à forte valeur ajoutée pour l’entreprise.

Je vous propose de découvrir dans cette chronique quelques fonctionnalités autour du travail collaboratif qui vous permettront d’atteindre une bonne efficacité individuelle et collective.

Aujourd’hui zoom sur une fonctionnalité très demandée par les utilisateurs de la plate-forme collaborative Microsoft qui est apparue avec la version 2013 : le glisser-déposer. Il est désormais très simple de mettre à disposition des documents sur un site SharePoint.

Depuis votre explorateur Windows, glissez-déposez un ou plusieurs documents vers votre librairie de documents SharePoint. Cela fonctionne aussi si vous voulez charger un dossier contenant plusieurs fichiers, vous serez toutefois limités à des chargement de 100 documents simultanés.

Pour utiliser cette fonctionnalité il vous faudra :

  • Soit un navigateur web supportant le html5 : IE 10, Chrome ou Firefox dans leur dernière version.
  • Soit IE 8 ou IE 9 avec Office 2013 installé ou le composant gratuit skydrive pro si vous avez une version antérieure d’Office.

IE7 ne supporte pas du tout cette fonctionnalité.

Découvrez la vidéo présentant cette fonctionnalité :

[PASS SUMMIT 2013] NY, London, Munich, Everybody’s talkin about Mobile BI

Speaker : Paul Turkey

Niveau de la session : 200

Le speaker commence la session en se filmant avec sa webcam depuis sa tablette Windows 8 qui est projeté à l’écran.

Ensuite il fait un sondage auprès des participants sur la région d’où ils viennent, leur fonction, est ce qu’ils sont « Cloud Ready » …..

Les infos sont saisies en live sur la tablette du speaker transférées dans un cube et présentées avec Power View.

 

Il présente ensuite les prérequis pour faire de la « BI Mobile », puis les différents outils MS de Reporting, Data Visualization et portail BI ainsi que leurs capacités à faire de la BI Mobile, puis fait des démos sur sa tablette avec ces outils.

 

Enfin il fait une démo de Power BI en mobilité.

On voit du Power View dans Office 365 s’afficher dans un navigateur en HTML 5.

 

Enfin il présente des outils tiers pour faire de la BI mobile « On Premise » et notamment DataZen qui s’appuie  sur l’API « ComponentArt »

Conclusion :

Speaker très pédagogue, le scénario et la progression des démos sont très inventifs.

Power View dans Office 365 (Power BI) s’affiche enfin dans un navigateur en HTML5. La BI mobile fonctionne bien pour une fois. Donc bravo Microsoft !!

Là on se dit que Silverlight devient obsolète et qu’afficher de l’Excel, du SSRS ou Power View avec  SharePoint depuis un mobile ne sert plus à rien. De toute façon c’était pas « Touch ready » et peu performant.

Enfin l’éditeur tiers DataZen est très bluffant !!

La question qui reste en suspens et c’est dommage : à quand la mobilité Microsoft sur les iPad du concurrent Apple ?

Sébastien Madar

[PASS SUMMIT 2013] CAT : High Performance, High Volume Data Movement in Azure

Speaker : Steve Howard

Niveau de la session : 300

Plusieurs outils associés pour le transfert de données :

  • BCP
  • Custom Code (BulkCopy API, TVP, .NET)
  • SSIS

Il existe 5 patterns du mouvement de données :

  • Telemetry Aggregation
  • Hierarchy Aggregation
  • Data Synchronisation et Bulk mouvement
  • Data Stream Multiplexing (Sharding)
  • Cloud ETL

Dans Sharding :

Le Principe : améliorer les performances du « Scale out »

Les datasets sont distribué dans plusieurs bases

Il existe un composant SSIS  dans codeplex « Database Sharding »

Démo

Script qui lance plusieurs Package et place en file d’attente les données

Sébastien Madar

[PASS SUMMIT 2013] Fast Performing SSAS hierarchies : tips and tricks

Speaker : Jose Chinchilla – President & CE AgileBay Inc.

Niveau de la session : 200

1. Types and classification of hierarchies :

* Natural and unnatural hierarchies :

  • natural : existe physiquement sur le disque. Offre de meilleure performance (exemple : year / quarter / month / day),
  • unnatural : non performante car relations logiques entre les attributs –> à éviter au maximum et attention aux problèmes de déploiement à cause des duplicate keys,

* Attribute and user hierarchies :

  • attribute : les attributs de la dimension sont des hiérarchies par défaut (All / liste des valeurs),
  • user : créé par l’utilisateur via des drags & drops,
  • IsAggregatable = False –> pour cacher le ALL dans la hiérarchie d’attributs,
  • Il faut définir les relations entre les attributs dans les user hierarchies afin d’optimiser le temps de réponse des requêtes. La définition de la relation se fait en glissant l’enfant vers le parent (Follow my daddy),

* Values Discretization :

  • Permet de créer des intervalles de valeur (ex. size range – size),
  • Mettre la propriété « DiscretizationMethod » du champ à Automatic puis spécifier le nombre d’intervalles à générer dans la propriété « DiscretizationBucketCount »,

* Bonne pratique : spécifier la propriété « Type » de la dimension et de ses attributs (ex. Type = ‘Time’ pour la dimension date, ‘Geography’ pour la dimension géographie, etc.),

2. Performance Optimizations :

* Modeling : un bon modèle multidimensionnel garantit une bonne performance du cube,

* Aggregations : Pré-aggrégation d’un groupe de mesures selon la granularité des dimensions avec lesquelles il est en relation (via des clés étrangères ou des références),

* Partitions : La stratégie classique de partitionnement  est de la faire en fonction du temps puis de processer uniquement celle relative au mois en cours, au 2 derniers mois, etc. (tout dépend du besoin métier),

* SSAS QueryLog : option disponible via clic droit sur l’instance SSAS, Propriétés, Général et activer l’option Log / Query Log / CreateQueryLogTable qui va créer une table de journalisation dans la base de données spécifiée. Cette table permettra de voir toutes les requêtes exécutées sur le cube avec des statistiques (Start Time, Duration, etc.),

* Usage-Based Optimisation Wizard,

Conclusion :

Session qui reprend les bases de mise en place des hiérarchies dans un cube OLAP et présente quelques astuces d’optimisation. Elle reste peu intéressante si on maîtrise déjà le sujet mais assez pédagogique sinon…

Ismaïl Ben Lamine

[PASS SUMMIT 2013] Advanced Analysis with Excel 2013

Speaker : Dejan Sarka, SolidQ

La session parle de data mining et de l’utilisation des outils Microsoft associés (Excel + PowerPivot)

Agenda :

  • Excel Data preparation and Data mining
  • Table analysis with Excel
  • Introducing PowerPivot
  • Combining data mining with PowerPivot

Introduction :

L’Addin Data Mining est à chercher avec la version SQL 2012

Il utilise en source une  connection à SSAS en multidim ou une Range Excel ou une Table Excel

Concrètement on peut utiliser 3 addins :

  • Le client Data mining pour Excel
  • Table Analysis Tool pour Excel
  • Les modèles de Data Mining pour Visio (pas encore pour excel 2013, pas montré par le speaker)

Le client Data mining pour Excel :

Tout se trouve sur la base (Ribbon)

La préparation des données se fait avec Explore Data tool + Clean Data Tool (nettoyage basique = re-nommage de colonne, suppression des valeurs aberrantes = outliers) + Sample Data tool (échantillonnage pour training du modèle)

Pour le modèle de données on peut utiliser :

  • Classify tool -> utilise Decision tree
  • Estimate tool -> utilize Regression tree
  • Cluster tool -> utilize Clustering
  • Associate tool -> utilize des règles d’association
  • Forecast tool -> utilize Times Series
  • Options avancées : créer une nouvelle mining structure ou pour ajoutter un modèle à une mining structure existante

Pour la précision et la validation des données on utilise dans la section correspondante du Ribbon :

  • Accuracy Chart
  • Classification Matrix
  • Profit Chart
  • Cross Validation tool

Les modèles que l’on veut valider doivent partager la même structure de mining

Le client de data mining sert aussi pour :

  • Model usage
  • Management
  • Connections

Démo :

  • analyser des données via Excel (connection a une bd sql 2012 adventureworksdw2012)
  • utiliser le Data mining client : explorer les données à partir d’une table de données d’Excel data et affichage de la distribution continue d’un champ (par ex du revenue)
  • Convertir la table en range puis classify (uses decision tree) pour analyser les achats de vélos : cela crée un  modèle et sa structure dans SSAS, on peut voir alors l’arbre de décision (par exemple depuis ssms ou excel : idem)
  • On peut aussi utiliser document model via Excel (option qui existe) et copier une des représentation graphique (image statique)

Table analysis tool :

Il apporte une vision orientée plus business et peut être utilisé pour :

  • Analyze key influencers (Native Bayes mining model)
  • Detect categories (Clustering mining model) and Fill From Example (Logistic Regression mining model)
  • Surligner les Exceptions categories (Clustering mining model)  et analyser le panier du consommateur (Règles d’association)
  • Outil de prévision (Forecast tool via Times Series model et Prediction calculator via Logistic Regression)
  • Goal seek (que modifier pour arriver à l’objectif) et What if (quell est l’impact d’une modification)

Démo :

  • Gool seek (target bike buyer) pas très utile car chiffre utilise en source pas top
  • What if (target bike buyer avec distance — > renvoie un niveau de confiance)
  • Hihlight Exceptions (lent c’est pour cela qu’on échantillonne) : marque les lignes sources et produit un rapport

Combining data mining with PowerPivot :

L’introduction sur PowerPivot décrit BISM puis explique différentes implémentations du modèle tabulaire de SSAS :

  • Personal BI  = Excel PowerPivot
  • Team BI = BI avec SharePoint
  • BI d’entreprise = SSAS en mode tabulaire

On peut utiliser PowerPivot pour du datamining. Il faut :

  1. Créer un rapport de table pivot à plat
  2. Supprimer les sous totaux et totaux
  3. Formater la zone de données en tant que table
  4. Utiliser l’outil Table Analysis pour explorer les données

On peut faire l’inverse, utiliser du datamining en tant que source de PowerPivot. Pas d’éditeur DMX dans PowerPivot mais voici la solution de contournement :

  1. Définir SSAS multidim database en source de données
  2. Ecrire dans un éditeur MDX (genre SSMS) la requête DMX manuellement (bonne chance)
  3. Importer les données
  4. Créer les relations

Démo :

Première démo

  • import de donnes dans PowerPivot via query sur source sql + measure total of bike buyer (sum) + count of bike byer + moyenne via sum/counta
  • création pivot table report
  • exclure subtotals et total pour avoir une table
  • convertir  en formules
  • analyser via tool d’excel

Deuxième démo

  • création dans Visual Studio d’un data mining model
  • Création  requête sql (en dmx avec prediction join) pour avoir des clusters par customerkey
  • Import du modèle dans PowerPivot via la requête préparée avant en dmx
  • Connexion dans le modelé de PowerPivot entre vTargetMail et la Query
  • Création d’un graphique (histogramme de prédiction des buyers by cluster)

Conclusion :

Bonne session si on aime le Data Mining.

Encore une utilisation de la self-service BI (on oublie un peu que le data mining existe ?).

Avantage Microsoft : la gratuité des outils que l’on a déjà pour du data mining (Excel + SSAS) quand on fait  de la BI.

Oui Microsoft n’est pas le standard pour le data mining …

Pascal Rouzé

[PASS SUMMIT 2013] Why is SQL Server slow right now ?

Speaker : Brent Ozar – MCM, MVP Brent Ozar Unlimited

Niveau de la session : 200

Troubleshooting :

1. sp_whoisactive :

Procédure stockée qui permet de voir la ou les requêtes en cours d’exécution sur le serveur –> disponible par défaut dans SQL Server,

2. sp_Blitz :

Procédure stockée qui priorise la liste des problèmes sur le serveur SQL par ordre décroissant (situation en général et non à l’instant T) –> disponible en téléchargement gratuit,

3. sp_AskBrent :

Procédure stockée qui liste tous les éléments qui ont mis plus de 5 secondes (durée paramétrable) à s’exécuter. Dans le résultat retourné, on retrouve également :

  • la consommation (CPU, disque, I/O) des requêtes,
  • liens URL vers la description du problème,
  • recommandation d’optimisation,
  • Query Plan (plus besoin de trace),

En rajoutant le paramètre @ExpertMode = 1 à la procédure, on peut voir tout ce qui se passe sur le serveur regroupé par activité.

Il est possible d’exporter le résultat de la procédure dans une table (en renseignant les paramètres @OutputDatabaseName, @OutputSchemaName et @OutputTableName) et de planifier auquel cas un job derrière –> penser quand même à vider la table périodiquement.

En rajoutant le paramètre @AsOf, on peut suivre les requêtes à plus ou moins 15 minutes de cette date.

4. OpServer :

Application web open source qui permet de monitorer l’activité serveur (jobs, espace disque occupé, espace mémoire, etc.). Elle doit être installée sur le serveur web interne de l’entreprise. Elle est sécurisée et les données récoltées restent internes.

Conclusion :

Excellente session. Peu de slides, beaucoup de démos. Speaker dynamique, drôle et qui maîtrise parfaitement son sujet. Les outils et procédures présentés sont intéressants. À tester / approfondir…

Ismaïl Ben Lamine