SP2010 – Créer le service de recherche par Powershell – Part 1

Posted on Updated on

Bonjour à tous.

Le but de ce post : créer une application de service de recherche dans SharePoint 2010.

Vous me direz facile ! Par l’administration centrale oui… mais par Powershell ??? pas si compliqué que ça !

Mais pourquoi utiliser Powershell alors qu’on peut y arriver par la console d’administration centrale de SharePoint ??? Tout simplement afin d’avoir le contrôle sur les noms des bases de données associées au service de recherche !! fini les GUID 😉

Comment s’y prendre ?

Première étape, lancer le Management Shell pour SharePoint 2010, depuis le menu Démarrer > Tous les programmes > Microsoft SharePoint 2010 Products > SharePoint 2010 Management Shell :

Launch management shell

Etape suivante, les commandes Powershell !

Nous aurons besoin de plusieurs variables qui contiendront des chaines de caractères que nous utiliserons plusieurs fois, par exemple : le nom du service, compte de service, nom du pool d’application pour l’application de service, etc.

On commence donc par cela :

Nom du service : $SearchAppServiceName = “Service de Recherche de SharePoint 2010 créé par Powershell”

Nom du pool d’application pour le service de recherche : $SearchAppPoolName = “SearchAppPool”

Compte du domaine qui supportera le service de recherche (remplacez par le compte de domaine qui supportera le service) : $SearchAppAccount = “domaine\compte” 

Nom de la base de données d’administration de la recherche : $SearchAppAdminDBName = “SP2010_Search_AdminDB”

Nom du proxy de l’application de service de recherche : $SearchAppProxyName = “Proxy du Service de Recherche de SharePoint 2010 créé par Powershell”

Une fois toutes ces variables créées, il faut récupérer l’instance du service de recherche et la démarrer (si ce n’est pas déjà fait) : $SearchAppServiceInstance = get-spenterprisesearchserviceinstance -local

On pourra également entrer $SearchAppServiceInstance pour vérifier que l’instance est bien récupérée (Notez la ligne Status : Online => l’instance du service est déjà démarrée sur mon serveur, donc la commande suivante n’est pas nécessaire)

Et on démarre l’instance : Start-SPEnterpriseSearchServiceInstance -Identity $SearchAppServiceInstance

On va maintenant créer le pool d’application qui supportera l’application de service de recherche : $AppPool = new-SPServiceApplicationPool -name $SearchAppPoolName -account $SearchAppAccount 

(On pourra entrer $AppPool afin de vérifier que le pool est bien créé avec le compte demandé)

A l’aide du pool d’application créé, du nom de la base d’administration, nous allons créer l’application de service de recherche (cette étape peut prendre plusieurs minutes) : $SearchServiceApplication = New-SPEnterpriseSearchServiceApplication -Name $SearchAppServiceName -applicationpool $AppPool -databasename $SearchAppAdminDBName

(On pourra entrer $SearchServiceApplication pour vérifier que l’instance de l’application de service est bien créée)

Il faut maintenant créer le proxy de l’application de service, pour cela : $SearchAppServiceProxy = new-spenterprisesearchserviceapplicationproxy -name $SearchAppProxyName -Uri $SearchServiceApplication.Uri.AbsoluteURI (On pourra entrer $SearchAppServiceProxy afin de vérifier que le proxy est bien créé) :

Si on lance la console centrale d’administration de SharePoint 2010, et qu’on parcourt les applications de service, on voit bien que le nouveau service de recherche est créé, le proxy est également créé.

Par contre si on clique sur le lien (sur l’application de service que l’on vient de créer), on a un message d’erreur dans la rubrique “Etat du système ” : Le service de recherche ne peut pas se connecter à l’ordinateur hébergeant le composant d’administration. Vérifiez que le composant d’administration 2d013e71-6b6f-4871-839d-41ddcbceaba0 de l’application de recherche Service de Recherche de SharePoint 2010 créé par Powershell fonctionne correctement et réessayez. 

C’est normal, car cous n’avons pas encore fini la création de ce service de recherche. Maintenant il faut créer le composant d’administration… Pour cela : set-SPenterprisesearchadministrationcomponent -SearchApplication $SearchServiceApplication  -searchserviceinstance $SearchAppServiceInstance

Et si on rafraîchit la page de la console d’administration centrale (application de service de recherche précédemment créée), l’erreur sur le composant d’administration n’apparaît plus !

A partir de cet instant vous pourrez reprendre la main depuis la console d’administration de SharePoint 2010 et créer vos sources de contenu, étendues, managed properties, règles d’analyses, etc.

Histoire conclure, voici quelques captures d’écran permettant de comparer un service de recherche créé avec l’assistant de la console d’administration centrale de SharePoint 2010 et un autre créé avec Powershell :

Les noms de composants, bases de données, etc. sont plus simples (fini les GUID  :p )

Notez également que je n’ai pas encore créé de partition ni de composant d’analyse ou encore de composant de requête, c’est également possible avec Powershell… d’ailleurs je le ferai dans un prochain article). Il faudra également associer cette application de service de recherche aux Web Application de ma ferme qui auront à utiliser ce service. Il reste du boulot !

Advertisements

14 thoughts on “SP2010 – Créer le service de recherche par Powershell – Part 1

    […] Voici la suite du précédent post concernant la configuration du service de recherche de SharePoint Server 2010 avec Powershell : Part 1. […]

    […] SP2010 – Créer le service de recherche par Powershell « Florent … Le but de ce post, créer une application de service de recherche dans SharePoint 2010. Vous me direz facile ! Par l'administration centrale… mais par Powershell ? pas si compliqué que ça ! … Source: kazoumoulox.wordpress.com […]

    Sebastien Dionne said:
    7 September 2011 at 16:13

    Bonjour, Je pense que ton blog s’approche de ce que j’ai besoin de faire.

    On m’a demandé de faire une preuve de concept avec SharePoint 2010 pour indexer nos documents que nous avons sur un drive réseau.

    Je pourrais résumé que j’ai deux parties à faire.

    #1 – importer nos documents
    #2 – faire une page web de recherche dans SharePoint pour rechercher seulement dans nos documents, et avoir une autre page de recherche, qui va chercher dans SharePoint sans prendre compte de nos documents.

    Je n’ai malheuresement aucune expérience en Sharepoint.

    J’.ai créé une 2e database :WSS_Content_test (je me suis dit que je pourrais importer mes documents dans cette BD et faire pointer ma page de recherche dans cette DB)

    Je suis dans la console administration web à l’onglet : Administration centrale Application de service de recherche :

    J’ai pensé que je pourrais donner le URL de mon drive réseau.. mais ca me donne toujours une erreur dans l’importation dans le rapport d’analyse :

    j’avais mis comme URL : //server1/mynetworkdrive/

    est-ce que tu saurais ce que je dois faire ?

    merci

    Administration centrale Application de service de recherche :

      kazoumoulox responded:
      7 September 2011 at 18:58

      Bonjour Sébastien.

      Effectivement il te faut configurer le service de recherche de SharePoint (ou search server si tu es en Foundation + search server) afin qu’il soit capable d’indexer les fichier de ton disque réseau. Pour cela, dans la console d’administration centrale, rends toi dans la configuration des applications de service, et clique sur le service de recherche. Ensuite tu ajoutes une source de contenu (sur la gauche) qui pointe sur un répertoire réseau (plusieurs choix : site SharePoint, site web, network folder, etc.) et renseigne l’adresse du répertoire. Attention, le compte d’indexation configuré pour le service (compte qui a lecture normalement sur tout SharePoint) doit avoir accès à ce répertoire réseau. Sinon les logs des indexations te remonteront des Access Denied, il doit avoir l’accès en lecture (a minima).
      Ensuite une fois configuré, tu peux lancer une indexation complète afin que le moteur de recherche indexe (en Full Text) tes fichiers du répertoire réseau.

      Ensuite pour tes pages de recherche : SharePoint te fournit tout ce qu’il faut en natif. En effet, tu peux utiliser les étendues de recherche (ou scopes en anglais) qui sont disponibles également dans la page d’administration de la recherche. Créé alors une étendue qui utilise ta source de contenu précédemment créée. Cette étendue te permettra, via la liste déroulante devant la zone de recherche de sélectionner cette étendue et donc de rechercher seulement sur cette étendue, et donc seulement dans ce répertoire réseau !!! Donc pas besoin de créer plusieurs pages.

      Tu peux également créer une centre de recherche (sous site de ta collection de site) qui te permettra de centraliser les recherches des utilisateurs. Le scénario : Un utilisateur utilise la zone de recherche de n’importe quel site, il est redirigé vers la page des résultats de recherche dans ce centre de recherche. Il peut alors changer d’étendue (répertoire réseau, sites SharePoint, autres étendues), mais également utiliser la recherche avancée (Multi-critères, langues, métadonnées pour filtrer etc.).

      Donc pour résumer :
      1/ Créer une source de contenu
      2/ Créer une étendue pointant sur cette source de contenu
      3/ Indexer les données (et créer les planifications d’indexation : incrémentielle et complète)
      4/ Créer un centre de recherche
      5/ Paramétrer SharePoint (Paramètres du site racine, paramètres des étendues) pour lui donner les étendues disponibles et celle par défaut
      6/ Tester !!!

      Si tu as d’autres questions… n’hésite pas !

      Florent.

    Sebastien Dionne said:
    8 September 2011 at 14:26

    Merci beaucoup. Tu m’as sauvé.

    Je suis maintenant capable de faire des recherches avec ma nouvelle source de contenu.

    Je n’ai cependant pas été capable de faire une recherche seulement pour cette source.

    Voici ce que j’ai fait.

    En haut à gauche :

    j’ai choisi : Actions du site : Nouveau Site

    Après j’ai complété le formulaire
    Nom : test3
    Centre de recherche d’entreprise

    et fait créer.

    Après j’entre le URL : http://serveur/test3/_layouts/settings.aspx pour faire la page d’administation du site.

    Je ne trouvé la section pour configurer la page de recherche par defaut. Ok, j’ai trouvé comment enlever l’onglet : Personnes.

    Il me reste donc l’onglet : Tous les sites.

    La page de recherche dont je parle serait celle-ci : http://serveur/test3/Pages/default.aspx

    Aurais-tu encore un peu de temps pour m’indiquer où je dois aller ?

    Merci

      Sebastien Dionne said:
      8 September 2011 at 15:23

      J’ai été capable de créer une page de recherche personnalisée. Je vois maintenant une listbox avec:

      Tout ce site : Site3
      Tous les sites
      Personnes

      De quelle page, je pourrais personnaliser ce qui serait affiché dans cette liste ?

      J’ai créé une étendue via cette page (etendue-locale-test):

      Administration centrale Application de service de recherche : étendues d’affichage

      Dans cette page j’ai les étendues suivantes :

      Personnes,
      Tous les sites,
      etendue-locale-test

      et elles sont toutes avec le statut “pret”

        kazoumoulox responded:
        8 September 2011 at 20:17

        Pour créer cette page personnalisée de recherche, il faut passer par l’administration du site racine de la collection. Tu as dans la section administration de la collection de site un lien : paramètres des étendues. Dans la page arrivant, il doit y avoir un lien “Groupes d’affichage”. C’est dans cette page qu’il faut que tu indiques les étendues disponibles dans la liste déroulante et également dans la page de recherche avancée. Et après c’est gagné.
        Dans ta page personnalisée, pense à ajouter les WebParts de résultats, le WebPart de raffinement, meilleurs résultats, etc. (pour avoir le même rendu que result.aspx (page de base)).

        En espérant t’avoir aidé !

    PERRY said:
    13 November 2012 at 11:34

    Salut.
    Merci pour ce tuto.
    La création des mes applis de service de rechercge via l’interface m’amene toujours à l’erreur “Le service de recherche ne peut pas se connecter à l’ordinateur hébergeant le composant d’administration.”
    J’ai donc suivi ton tuto, aucun message d’erreur, tout semble avoir été créé.
    Mais malheureusement, même pb, mon service ne se crée par et je reste sur l’erreur “Le service de recherche ne peut pas se connecter à l’ordinateur hébergeant le composant d’administration.”
    J’ai cherché un peu partout mais là je bloque, y a t-il des choses à vérifier ou sais tu d’avance ce qui occasionne ce pb ?

    Je suis en Sharepoint 2010 Server Standard sous 2008R2

    Merci.

      Florent Cazenave responded:
      13 November 2012 at 12:37

      Bonjour.

      Tu peux commencer par te diriger vers l’administration centrale de SP, dans la section gestion des applications de service => Application de service de recherche.
      Dans cette page, tu as deux liens en haut à gauche : administration des propriétés de la recherche (étendues, source de contenu, …) et dans l’autre ça parle topologie. Dans cette dernière, tu as les composants de recherche : query, index, crawl. A mon avis tu as un souci au niveau du composant d’administration et c’est à cet endroit que tu pourras l’identifier et peut être le corriger…

    PERRY said:
    13 November 2012 at 15:02

    Merci.
    Cliquer sur “sources de contenu”, “regles d’analyse”, “mapage des noms de serveurs”… etc, en fait, tout ce qui est sous Analyse m’envoie direct sur page d’erreur d’id de correlation comprenant également le code d’erreur System.InvalidOperationException: Le service de recherche ne peut pas se connecter à l’ordinateur hébergeant le composant d’administration.

    J’ai l’impression qu’il ne crée pas certains éléments mais je ne sais pas où partir pour vérifier que tout a été créé correctement.
    Cela fait 5 fois que je crée mes services de recherche et je commence à pourrir ma configuration qui était propre.

    Comment vérifier que le composant d’administration pour le service de recherce est créé et comment modifier les confs sans tomber sur ces pages d’erreurs ?
    Je précise que mon compte de service a les droits nécessaires (bdcreator et security).

    PERRY said:
    13 November 2012 at 15:31

    Précision, si ca peut aider à m’aider 🙂
    Le message d’erreur exact dans l’administration de la recherche est :
    “Le service de recherche ne peut pas se connecter à l’ordinateur hébergeant le composant d’administration. Vérifiez que le composant d’administration 00b0c47b-9d9f-4bd7-9848-2be96e2cefb5 de l’application de recherche Application de service de recherche fonctionne correctement et réessayez.”

    Ce composant “00b0c47b-9d9f-4bd7-9848-2be96e2cefb5”, je le trouve “physiquement” où pour vérifier qu’il a été créé ?
    Je ne le trouve pas dans IIS dans les pool d’applications ni dans SQL.
    C’est normal ?

    Merci encore

    PERRY said:
    16 November 2012 at 13:47

    Merci.
    J’ai parcouru ton lien mais je n’ai pas réussi à comprendre d’où venait le pb.
    Du coup, j’ai réinstallé mon serveur SP2010 et là… service de recherche implémenté correctement.
    A force de réfléchir sur les différents pb que j’ai pu noter sur les forums, j’en suis arrivé à un pb de droits d’accès ou de chemin.
    Sur mon précédent serveur, SQL et les dossiers de SP étaient sur une partition différente du système. J’ai donc réinstallé le serveur et SP tout sur C$.
    Je ne sais pas si mon pb venait de là mais en tout cas dans cette configuration avec les chemins par défaut, tout fonctionne.
    Si ca peut aider d’autres…
    Merci encore.

    […] SP2010 – Créer le service de recherche par Powershell – Part 1 […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s