Вы можете добавить новую область поиска через powershell:
New-SPEnterpriseSearchQueryScope -SearchApplication "Приложение-служба поиска" -Имя NewSearchScope -Описание "Область поиска нового поиска" -DisplayInAdminUI 1 – OwningSiteUrl http://servername/sites/
Но кто-нибудь знает пример кода, который показывает, как это сделать через OM? (используя пространство имен Microsoft.SharePoint.Administration, а не Microsoft.Office.Server.Search)
все указатели будут хороши
С уважением
Mo
* Обновление **
игнорируя обработку ошибок / ведение журнала и т. д., это правильный способ сделать это:
SPSite siteColl = (SPSite) properties.Feature.Parent;
Microsoft.SharePoint.Administration.SPServiceApplication spserviceapp = siteColl.SearchServiceInstance.Service.Applications["Search Service Application"];
SearchServiceApplication searchserviceapp = (SearchServiceApplication)spserviceapp;
ScopeInfo scopeInfo = new ScopeInfo();
scopeInfo.Name = "Scope test1";
scopeInfo.Description = "Scope test1";
scopeInfo.DisplayInAdminUI = true;
scopeInfo.CompilationType = ScopeCompilationType.AlwaysCompile;
scopeInfo.CompilationState = ScopeCompilationState.NeedsCompile;
int statusCode = 0;
int scopeId = searchserviceapp.AddScope(scopeInfo, out statusCode);
if (scopeId > 0)
{
RuleInfo ruleInfo;
ruleInfo = new RuleInfo();
ruleInfo.FilterBehavior = ScopeRuleFilterBehavior.Include;
ruleInfo.RuleType = ScopeRuleType.AllContent;
int ruleId = searchserviceapp.AddRule(ruleInfo, scopeId);
}
searchserviceapp.Update(true);
а не ssp способ поиска контекста?
SearchContext searchctx = null;
searchctx = SearchContext.GetContext (web.Site);
Области действия = новые области (searchctx);
Scope currentScope = scopes.AllScopes.Create (
"CurrentScopeName", string.Empty, new Uri (web.Site.Url), true,
string.Format ("{0} /Search/Pages/Results.aspx", web.Site.Url),
ScopeCompilationType.AlwaysCompile);
currentScope.Update ();
currentScope.Rules.CreateUrlRule (ScopeRuleFilterBehavior.Include,
UrlScopeRuleType.Domain, web.Site.Url);
ScopeDisplayGroup group = scopes.GetDisplayGroup (новый Uri (web.Url),
«Выпадающий поиск»); group.Add (currentScope);
group.Update (); * * тысяча тридцать-один
scopes.StartCompilation (); * * тысяча тридцать два
scopes.Update();