SP2010 – Créer le service de recherche par Powershell – Part 1
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 :
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 !













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 :
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.
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
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”
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é !