Пошаговое руководство. Запрос поиска SharePoint из клиентского приложения

Дата последнего изменения: 20 июля 2010 г.

Применимо к: SharePoint Server 2010

ПримечаниеПримечание

В этом контексте под "клиентскими приложениями" имеются в виду приложения, вызывающие веб-службу запросов. Это могут быть такие приложения, как веб-приложения Microsoft ASP.NET или приложения Windows Forms.

Веб-метод QueryExвеб-службы запросов отправляет запрос службе поиска и возвращает результаты в объекте DataSet. В следующем пошаговом руководстве описано использование веб-службы запросов для возврата результатов SharePoint Server в клиентское приложение Windows с помощью веб-метода QueryEx, а также выполнение следующих задач:

  • Настройка клиентского приложения

  • Обращение к веб-службе запросов из клиентского приложения

  • Изменение формы для клиентского приложения

  • Создание кода клиентского приложения

  • Тестирование клиентского приложения

Для выполнения этого руководства должны быть выполнены следующие условия:

  • На компьютере для разработки установлено приложение Microsoft Visual Studio 2010.

  • Пользователь имеет права доступа к сайту SharePoint, настроенному для использования SharePoint Server.

Настройка клиентского приложения

  1. В Visual Studio 2010, в меню Файл выберите Создать и щелкните Проект.

  2. В разделе Установленные шаблоны разверните узел Visual C# и щелкните Windows.

  3. Выберите Приложение Windows Forms. В поле Имя введите QueryExClientSample и нажмите кнопку OK.

Добавьте веб-ссылку на веб-службу запросов

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта, а затем выберите Добавить ссылку на службу.

  2. В диалоговом окне Добавление ссылки на службу нажмите кнопку Дополнительно.

  3. В диалоговом окне Параметры ссылки на службу нажмите кнопку Добавить веб-ссылку.

  4. В диалоговом окне Добавить веб-ссылку в поле URL-адрес введите следующий адрес: http://SERVER/_vti_bin/search.asmx. Замените SERVER URL-адресом сайта SharePoint и нажмите кнопку Перейти.

  5. После обнаружения веб-службы в главном окне диалогового окна Добавление веб-ссылки отобразится страница веб-службы QueryService. Введите QueryWebServiceProxy в поле Имя веб-ссылки, а затем нажмите кнопку Добавить ссылку.

Изменение формы по умолчанию для клиентского приложения

  1. В обозревателе решений дважды щелкните форму (Form1, если используется форма по умолчанию).

  2. В панели элементов разверните раздел Общие элементы управления, щелкните Кнопка и перетащите элемент управления в форму. В разделе Свойства измените (имя) на queryButton и введите Запрос в свойстве Текст.

  3. В панели элементов щелкните TextBox и перетащите элемент управления в форму. В разделе Свойства измените (имя) на queryTextBox задайте для Multiline значение True.

  4. В панели элементов разверните раздел Данные, щелкните DataGridView и перетащите элемент управления в форму. В разделе Свойства измените (имя) на resultsGrid.

  5. В панели элементов щелкните Метка и перетащите элемент управления в форму. В разделе Свойства измените (имя) на resultsLabel и удалите содержимое свойства Текст.

Создание кода для клиентского приложения

  1. Дважды щелкните queryButton, чтобы добавить обработчик для события Click. Откроется окно редактора кода с курсором, установленным в обработчике события queryButton_Click.

  2. Добавьте в обработчик события queryButton_Click следующий код

    try
    {
    // Instantiate the Web service.
        QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService();
    // Use the credentials of the user running the client application. 
        queryService.Credentials = System.Net.CredentialCache.DefaultCredentials;
    //Execute the QueryEx method, returning the results to a DataSet
        System.Data.DataSet queryResults = queryService.QueryEx(GetXMLString());
    // Set the DataGridView data source to the first table in the DataSet oject, which contains the relevant results.
        resultsGrid.DataSource = queryResults.Tables[0];
    }
    catch (Exception ex)
    {
        resultsLabel.Text = ex.ToString();
    }
    
  3. Строка, передаваемая в метод QueryEx, создается в функции GetXMLString. Добавьте следующий код в класс Form1, чтобы создать функцию GetXMLString.

    private string GetXMLString()
    {
    /* 
       The proceeding six lines of code is actually one line of code.
       It is separated into four lines here for readability.
       You will need to remove the line breaks when you copy the code to your project.
    */
       StringBuilder xmlString = new StringBuilder("<QueryPacket xmlns='urn:Microsoft.Search.Query'>
    <Query><SupportedFormats><Format revision='1'> urn:Microsoft.Search.Response.Document:Document
    </Format></SupportedFormats><Context><QueryText language='en-US' type='STRING'>");
        xmlString.Append(queryTextBox.Text);
        xmlString.Append("</QueryText></Context></Query></QueryPacket>");
        return xmlString.ToString();
    }
    

Тестирование клиентского приложения

  1. Нажмите клавишу F5, чтобы построить и выполнить клиентское приложение.

  2. Введите в текстовое поле запрос ключевого слова. Дополнительные сведения о построении запросов ключевого слова см. в статье Справка по синтаксису запроса по ключевым словам.

  3. Щелкните Запрос, чтобы отправить запрос ключевого слова в веб-службу запросов. Возвращаемые результаты будут отображаться в элементе управления DataGridView.

См. также

Ссылка

QueryService

Концепции

Использование веб-службы запросов

Построение поисковых запросов

Другие ресурсы

Справочник по схеме Microsoft.Search