Bueno, un proyecto más en donde necesito utilizar este web service, y el escenario ahora es muy interesante.

Hay alrededor de 100 sitios independientes que deben ser indexados, pero más aún clasificados, es decir, 10 categorías principales con 10 sub-categorías. De esta forma imagina que tienes una categoría principal de, digamos, Hardware de computación, y dentro de ella 10 subcategorias como teclados, monitores, storage, etc. todas con sitios independientes.

El workaround que decidí tomar es crear 10 indices de contenido del servicio de búsqueda e indexación de SPS, y dentro de cada indice agregar los 10 content sources para cada una de las subcategorías. Algo bastante fácil, pero lo interesante empieza cuando hay que limitar las búsquedas a un content source en específico, por ejemplo, de la categoría “Hardware” la subcategoría “Teclados”. La forma de poder hacer esto resultó ser mas sencilla de lo que pensaba, y únicamente implica agregar un “WHERE” al query enviado al web service, ese “WHERE” se puede hacer de una de las propiedades de los documentos indexados por el crawler de SPS, la propiedad es:

urn:schemas.microsoft.com:fulltextqueryinfo:sourcegroup

En esta propiedad nos expone el nombre del “Source Group” que asignamos al content source en el momento de crearlo.

De tal forma nuestro query podría quedar de la siguiente forma:

SELECT "DAV:href", "DAV:displayname"
FROM Hardware..Scope()
WHERE CONTAINS (”urn:schemas.microsoft.com:fulltextqueryinfo:sourcegroup”,’Teclados’)
AND CONTAINS (’palabras a buscar’)

En este query (que se pude probar facil y rapidamente con la herramienta que discutimos en este espacio hace tiempo: http://www.hecgo.com/2005/06/28/usando-el-web-service-de-busquedas-de-sharepoint-portal-server-2003/) podemos ver que el indice se llama “Hardware” y se úbica en la sentencia “FROM” del query, y despues en el “WHERE” específicamos el nombre del “Source Group” que es el content source dentro del cual queremos límitar la búsqueda.

Claro que en vez de “CONTAINS” se pueden usar otras formas de realizar la búsqueda, pero eso no es el tema de este post, aquí hay toda una explicación de todas las posibilidades que tenem0s para especificar el tipo de búsqueda.

Y bueno, en realidad esto también servira como el core de lo que se convertirá en una página personalizada para los usuarios de un portal, en la que podrán elegir la información de su interes que quieran tener en un sólo lugar, algo muy similar al Google Personalized, pero eso será asunto de otro post en cuanto lo tenga resulto :P.