Accueil > SharePoint 2013, SharePoint Online > SharePoint 2013 / SharePoint Online : Réindexer un site ou une liste/bibliothèque à la demande

SharePoint 2013 / SharePoint Online : Réindexer un site ou une liste/bibliothèque à la demande


Vous connaissiez la VOD (Video On Demand), voici la ROD : Réindexation On Demand !

(Ne cherchez pas, je viens de l’inventer.)

Introduction

Cette nouvelle fonctionnalité de SharePoint 2013 vous permet de réindexer un site ou une liste/bibliothèque quand vous (administrateur de la collection) le souhaitez.

Le but ? Signaler à SharePoint que vous souhaitez lancer recrawler/réindexer un site ou une liste/bibliothèque, et ce dès qu’un crawl (même non full) est exécuté.

Sivous avez par exemple un continous crawl de configuré (voir cet article pour plus de détails à son sujet), votre demande sera prise en compte par celui-ci.

A noter que ette fonctionnalité n’a de sens que si vous désirez opérer un full crawl sur votre contenu, par exemple si vous ajoutez à votre bibliothèque une colonne de type métadonnée gérée. Dans le cas où vous ne faites qu’ajouter des éléments, çà n’a pas d’intérêt.

Au menu de cet article :

  • Réindexer un site – Comment procéder ?
  • Réindexer un site – Et côté technique ?
  • Réindexer une liste/bibliothèque – Comment procéder ?
  • Réindexer une liste/bibliothèque – Et côté technique ?

Réindexer un site – Comment procéder ?

1. Accédez aux paramètres de la collection de site, puis cliquez sur « Disponibilité du mode hors connexion et de la recherche ».
1

2. Assurez-vous que les éléments du site soient accessibles via la recherche (1), puis cliquez sur « Réindexer le site » (2).

2

3. Une popup de confirmation s’affiche; cliquez sur « Réindexer le site ». (Vous n’avez pas besoin de valider la page via le bouton « OK ».)

5

 

4. Vous n’avez plus qu’à attendre le prochain crawl.

Réindexer un site – Et côté technique ?

Si vous souhaitez savoir ce qui se passe en arrière-plan, vous pouvez partir du script ci-dessous.

Celui-ci tente de récupérer la propriété « vti_searchversion » de l’objet SPWeb :

  • La valeur est nulle => Aucune demande de réindexation n’a été faite pour ce site,
  • La valeur est à 1 => Une réindexation du site a été demandée.

# Récupération du web (SPWeb)

$web= Get-SPWeb « http://MonSiteSP2013« 

# Tentative de récupération de la propriété « vti_searchversion »
Write-Host-ForegroundColor Green $web.AllProperties[« vti_searchversion« ]

Résultat :

  • Première exécution : pas de réindexation en cours,
  • Seconde exécution : Réindexation demandée.

10

Réindexer une liste/bibliothèque – Comment procéder ?

1. Accédez aux paramètres de votre liste ou bilbiothèque, cliquez sur « Paramètres avancés »

14

2. Puis cliquez sur « Réindexer la biliothèque de documents ».

11

 

ou « Réindexer la liste ».

15

Dans les 2 cas vous n’avez pas besoin de valider la page via le bouton « OK ».

Réindexer une liste/bibliothèque –  Et côté technique ?

Le principe est le même que dans le cas d’un site.

Le script ci-dessous tente de récupérer la propriété « vti_searchversion » de la bibliothèque « Documents » :

  • La valeur est nulle => Aucune demande de réindexation n’a été faite pour cette bibliothèque,
  • La valeur est à 1 => Une réindexation de la bibliothèque a été demandée.

# Récupération du web (SPWeb)

$web= Get-SPWeb « http://MonSiteSP2013« 

# Tentative de récupération de la propriété « vti_searchversion »
Write-Host-ForegroundColor Green $web.Lists[« Documents« ].RootFolder.Properties[« vti_searchversion »]

Résultat :

  • Première exécution : pas de réindexation en cours,
  • Seconde exécution : Réindexation demandée.

10

 

Conclusion

Ma conclusion – çà fera plaisir à Thierry B.- sur ce sujet est que cette fonctionnalité est certes très intéressante pour les utilisateurs, mais doit néanmoins être encadrée : comme le dit la popup du premier chapitre (et je pense qu’on peut lu ifaire confiance) ces crawls engendrent de l’activité sur le système de recherche, il faudra donc éviter que ces réindexations ne soient déclenchées trop souvent, et sur de tros gros volumes.

Côté développement, le code que j’ai inséré dans l’article devrait vous permettre d’imaginer les solutions les plus folles.

  1. lognoulm
    mai 28, 2014 à 2:17

    Salut,

    Et pour le faire en PoSh, c’est la même propriété qu’il faut adresser:

    $site = Get-SPWeb http://intranet.massivedynamic.com/drh/
    $liste = $site.Lists[« Documents »]
    $version = $liste.RootFolder.Properties[« vti_searchversion »]
    $liste.RootFolder.SetProperty(« vti_searchversion », ($version + 1))
    $liste.Update()

    BTW: Au contraire, je trouve que cette fonctionnalité réduit l’impact des full crawls puisqu’elle les limitent à ce qui est strictement nécessaire du point de vue de l’utilisateur final.

    Marc L

  2. mai 28, 2014 à 3:11

    Salut Marc,

    Merci pour le code.
    C’est justement ce « strictement nécessaire du point de vue de l’utilisateur final » qui me joue parfois des tours🙂

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :