Ошибка доступа к API поиска с помощью C # в SharePoint 2013: ваш поиск не может быть завершен, потому что служба поиска недоступна

1

Я использую объектную модель на стороне сервера, чтобы попытаться вызвать службу поиска (для запроса к поисковому индексу). Код выглядит так:

using (SPSite siteCollection = new SPSite(http://ValidSharePointSite))
                {
                    KeywordQuery keywordQuery = new KeywordQuery(siteCollection);
                    keywordQuery.QueryText = "search text";
                    SearchExecutor searchExecutor = new SearchExecutor();
                    ResultTableCollection resultTableCollection = searchExecutor.ExecuteQuery(keywordQuery);
                    resultTableCollection.Filter("Pages", KnownTableTypes.RelevantResults);
                    ResultTable resultTable = resultTableCollection.FirstOrDefault();
                    DataTable dataTable = resultTable.Table;
            }

Когда он попадает на строку, где создается объект KeywordQuery, возникает следующая ошибка: ваш поиск не может быть завершен, потому что нет службы поиска

Я пробовал код на двух разных серверах /envs SharePoint, и такая же проблема возникает. В журналах есть дополнительная информация о невозможности найти службу HostController. Какие-либо предложения?

Теги:
search
sharepoint-2013

2 ответа

2
Лучший ответ

Здесь решение: http://coder87.wordpress.com/2013/03/27/keywordquery-doesnt-work-or-confusion-between-search-namespaces/#comment-484

Необходимо использовать Microsoft.Office.Server.Search.Query вместо Microsoft.SharePoint.Search.Query;

0

Убедитесь, что служба поиска включена и не указана ошибка. Также через Search REST API в браузере вы можете проверить правильность работы поиска

  • 0
    Поиск работает нормально (инкрементные и полные обходы). Я также могу нажать на службу поиска через OData URL в браузере. Все это работает нормально. Просто возникли проблемы на стороне сервера, используя код, упомянутый выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню