Я новичок на sharepoint, и у меня возникают проблемы с возвратом результатов поиска с помощью API поиска в Sharepoint 2010 Foundation.
Вот шаги, которые я предпринял до сих пор.
- Служба Sharepoint Foundation Search v4 запущена и вошла в систему как локальная служба
- В разделе «Сайт группы» - «Настройки сайта» - «Поиск и автономная доступность» включено индексирование содержимого сайта.
- Запуск сценария PowerShell Get-SPSearchServiceInstance возвращает
TypeName: SharePoint Foundation Search
Описание: индексный файл поиска на поисковом сервере
Id: 91e01ce1-016e-44e0-a938-035d37613b70
Сервер: SPServer Name = V-SP2010
Служба: SPSearchService Name = SPSearch4
IndexLocation: C: \ Program Files \ Common Files \ Microsoft Shared \ Веб-сервер Exten
сий \ 14 \ Data \ Applications
ProxyType: по умолчанию
Статус: Онлайн
- Когда я выполняю поиск с использованием текстового поля поиска на сайте группы, я получаю результаты, как и ожидалось.
Теперь, когда я пытаюсь дублировать результаты поиска с помощью API поиска, я либо получаю сообщение об ошибке, либо 0 результатов.
Вот пример кода:
using Microsoft.SharePoint.Search.Query;
using (var site = new SPSite(_sharepointUrl, token))
{
//
FullTextSqlQuery fullTextSqlQuery = new FullTextSqlQuery(site)
{
QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope() WHERE \"scope\"='All Sites' AND CONTAINS('\"{0}\"')", searchPhrase),
//QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope()", searchPhrase),
TrimDuplicates = true,
StartRow = 0,
RowLimit = 200,
ResultTypes = ResultType.RelevantResults
//IgnoreAllNoiseQuery = false
};
ResultTableCollection resultTableCollection = fullTextSqlQuery.Execute();
ResultTable result = resultTableCollection[ResultType.RelevantResults];
DataTable tbl = new DataTable();
tbl.Load(result, LoadOption.OverwriteChanges);
}
Когда для области задано значение Все сайты, я получаю сообщение об ошибке, что область поиска недоступна. Другой поиск просто вернет 0 результатов.
Есть идеи о том, что я делаю не так?