Utilizar as APIs de consulta de pesquisa do SharePoint
Saiba mais sobre as APIs de consulta disponíveis no SharePoint que permitem que você adicione a funcionalidade de pesquisa a aplicativos e soluções personalizadas.
APIs de consulta do SharePoint
A pesquisa no SharePoint fornece várias APIs de consulta, oferecendo várias maneiras de acessar os resultados de pesquisa, para que você possa retornar os resultados de pesquisa em uma variedade de tipos de soluções personalizadas.
Além do modelo de objeto de servidor que estava disponível nas versões anteriores do SharePoint, Pesquisa no SharePoint também fornece o seguinte:
- Modelo de objeto do cliente (CSOM)
- modelo de objeto do JavaScript (JSOM)
- Serviço de Representational State Transfer (REST)
A tabela 1 mostra as APIs que você pode usar para consultas de pesquisa do programa e o caminho para o arquivo de origem no servidor.
Tabela 1. Pesquisar APIs
Nome da API | Biblioteca de classes ou o esquema e o caminho |
---|---|
CSOM DO .NET |
Microsoft.SharePoint.Client.Search.dll %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\ISAPI |
Silverlight CSOM |
Microsoft.SharePoint.Client.Search.Silverlight.dll %ProgramFiles%\Common Files\Microsoft Shared\Web server extensions\15\TEMPLATE\LAYOUTS\ClientBin |
JavaScript CSOM |
SP.search.js %ProgramFiles%\Common Files\Microsoft Shared\Web server extensions\15\TEMPLATE\LAYOUTS |
Pontos de extremidade do serviço REST |
https://{site_url}/_api/search/query https://{site_url}/_api/search/suggest |
Modelo de objeto do servidor |
Microsoft.Office.Server.Search.dll %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\ISAPI |
Como prática recomendada no desenvolvimento do SharePoint, use APIs do cliente, quando possível. As APIs de cliente incluem os modelos de objeto do cliente .NET, Silverlight, Telefone, JavaScript e o serviço REST. Para obter mais informações sobre as APIs no SharePoint e quando usá-las, consulte Escolher o conjunto de API correto no SharePoint.
Consulte usando o modelo de objeto do cliente .NET
Pesquisar no SharePoint inclui um modelo de objeto do cliente que permite o acesso aos resultados da pesquisa para desenvolvimento online, local e para dispositivos móveis. A pesquisa no SharePoint CSOM foi criada no SharePoint CSOM. Portanto, seu código de cliente precisa primeiro acessar o SharePoint CSOM e, em seguida, acessar a pesquisa no SharePoint CSOM. Para obter mais informações sobre o SharePoint CSOM e a classe ClientContext, que é o ponto de entrada do CSOM, consulte Operações básicas completas do SharePoint usando o código de biblioteca do cliente do SharePoint.
Para o .CSOM gerenciado .NET, obtenha uma instância de ClientContext (localizada no namespace Microsoft.SharePoint.Client no Microsoft.SharePoint.Client. dll). Em seguida, use o modelo de objeto no namespace do Microsoft.SharePoint.Client.Search.Query no Microsoft.SharePoint.Client.Search.dll.
Veja um exemplo básico.
using (ClientContext clientContext = new ClientContext("http://<serverName>/sites/<siteCollectionPath>"))
{
KeywordQuery keywordQuery = new KeywordQuery(clientContext);
keywordQuery.QueryText = "SharePoint";
SearchExecutor searchExecutor = new SearchExecutor(clientContext);
ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
clientContext.ExecuteQuery();
}
Para baixar um exemplo, consulte o seguinte código de exemplo publicado pelo MVP do SharePoint Corey Roth: SharePoint: consulta de pesquisa com o modelo de objeto do cliente gerenciado.
Consulta usando o modelo de objeto do cliente JavaScript
Para o CSOM do JavaScript, obtenha uma instância ClientContext e use o modelo de objeto no arquivo SP.Search.js.
Aqui está um exemplo básico.
var clientContext = new SP.ClientContext("<serverRelativeUrl>");
var contextSite = clientContext.get_site();
var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(clientContext);
keywordQuery.set_queryText("SharePoint");
var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(clientContext);
var results = searchExecutor.executeQuery(keywordQuery);
context.executeQueryAsync(onQuerySuccess, onQueryError);
Para baixar um exemplo, consulte o seguinte código de exemplo publicado pelo MVP do SharePoint Corey Roth: SharePoint: consulta de pesquisa com o modelo de objeto do cliente gerenciado.
Consulta usando o serviço REST
O SharePoint inclui um serviço REST que permite que você execute remotamente consultas no serviço de pesquisa do SharePoint a partir de aplicativos do cliente usando qualquer tecnologia compatível com as solicitações REST da Web. O serviço pesquisa REST expõe dois pontos de extremidade, query e suggeste dará suporte a operações GET e o POST. Os resultados são retornados em formato XML ou JavaScript Object Notation (JSON).
A seguir está o ponto de acesso do serviço: https://{site_url}/_api/search/
usando o site raiz como o ponto de entrada da consulta. Você também pode especificar outro site na URL, da seguinte maneira: https://{site_url}/site/_api/search/
. O prefixo de URL antes /_api/search/
usará a fonte de resultado padrão definida nesse site/escopo e as regras de consulta também serão contextuais para a URL usada, a menos que parâmetros sejam usados para substituir esse comportamento. A menos que qualquer configuração de pesquisa específica seja feita em um site, os resultados são os mesmos para ambas as maneiras de acessar o serviço.
Consulte Visão geral da API REST de Pesquisa do SharePoint e Recuperar as sugestões de consulta usando o serviço de Pesquisa REST para obter mais informações.
Consulta usando o modelo de objeto do cliente .NET
Aplicativos que usam o modelo de objeto do servidor devem ser executados diretamente em um servidor que esteja executando o SharePoint. O modelo de objeto do servidor de consulta de pesquisa reside no namespace Microsoft.Office.Server.Search.Query , que está localizado em Microsoft.Office.Server.Search.dll.
Como no SharePoint Server 2010, você usa a classe KeywordQuery para definir a consulta e, em seguida, chamou o método Execute() para enviar a consulta. No SharePoint, o método Executar é obsoleto e, mesmo que ainda funcione, você deve usar a classe SearchExecutor. Para enviar a consulta, chame o método ExecuteQuery() , passando a instância da classe KeywordQuery na chamada.
Aqui está um exemplo básico.
using (SPSite siteCollection = new SPSite("<serverRelativeUrl>"))
{
KeywordQuery keywordQuery = new KeywordQuery(siteCollection);
keywordQuery.QueryText = "SharePoint";
SearchExecutor searchExecutor = new SearchExecutor();
ResultTableCollection resultTableCollection = searchExecutor.ExecuteQuery(keywordQuery);
resultTableCollection = resultTableCollection.Filter("TableType", KnownTableTypes.RelevantResults);
ResultTable resultTable = resultTableCollection.FirstOrDefault();
DataTable dataTable = resultTable.Table;
}
Para baixar um exemplo, consulte o seguinte código de exemplo publicado pelo MVP do SharePoint Corey Roth: SharePoint: consulta de pesquisa com o modelo de objeto do cliente gerenciado.