Turn on more accessible mode
Skip Ribbon Commands
Skip to main content
Turn on Animations

"MiBusqueda" WebPart

WebParts


La maquina de búsqueda de SPS y WSS se puede utilizar sin necesidad de programación. Pero usando el API también es posible utilizar programaticamente la maquina y sus posibilidades.
Autor: Gustavo

El API puede buscar por datos contenidos en Listas o Documentos en sitios de Windows SharePoint Services utilizando los objetos "SearchListItems" y "SearchDocuments" de la clase "SPWeb".

SPSite mySite = new SPSite("http://[servidor]/sites/[nombre del sitio]");
SPWeb myWeb = mySite.OpenWeb();

SPSearchResultCollection mySearchResults = null;
mySearchResults = myWeb.SearchListItems(ToSearch);

Ambos métodos devuelven una colección de resultados del tipo "SPSearchResultCollection", que puede ser leído para mostrar los resultados individuales.

foreach(SPSearchResult mySearchResult in mySearchResults)
{
   strTerug += mySearchResult.Title + " URL: " + mySearchResult.Url ;
}

Este código busca en sitio completo por una determinada palabra, y devuelve todo lo que encuentra dentro de sus Listas y Librerías que contenga el término a buscar:

El sitio del ejemplo contiene una librería ("DocBiblioteca") que a su vez contiene un documento con la palabra buscada, y una Lista ("List_Libreria") con un campo en donde también se encuentra la palabra buscada.

Si en lugar de buscar en todo el sitio lo que se necesita es buscar en una sola Lista, hay que utilizar el objeto "GetItems" de la clase "SPList", que toma un objeto del tipo "SPQuery" para hacer la búsqueda.

SPSite mySite = new SPSite("http://[sitio]/sites/[nombre del sitio]");
SPWeb myWeb = mySite.OpenWeb();

SPList myList = myWeb.Lists["[nombre libreria]"];
SPListItemCollection myListItems;

SPQuery myQuery = new SPQuery();

En el objeto "SPQuery" se especifica el campo y el termino a buscar

myQuery.Query = "< Where >< Eq >< FieldRef Name=\"[nombre del campo]\"/ >"
     + "< Value Type=\"Text\" >[termino a buscar]< /Value >< /Eq >< /Where >";
myListItems = myList.GetItems(myQuery);

(Nota: Utilice el codigo en el archivo incluido para ver la sintaxis de la búsqueda: no utilice el codigo que se ve en la pantalla)

La sintaxis de la cadena de búsqueda esta documentada en el SDK de WSS.

El método devuelve una colección de resultados del tipo "SPListItemsCollection", que puede ser leído para mostrar los resultados individuales.

foreach(SPListItem myListItem in myListItems)
{
   strTerug += myListItem["Title"].ToString();
}

Para utilizar estos métodos de búsqueda es necesario que SQL tenga el "Full-text indexing" activado.

Aqui puede encontrar el codigo de la WebPart