Compartir a través de


Administración de raíces de búsqueda

El Administrador de ámbitos de rastreo (CSM) permite agregar y quitar raíces de búsqueda de los almacenes de datos hacia y desde el ámbito de rastreo de Búsqueda de Windows.

En esta sección se incluyen los siguientes temas:

 

Acerca de las raíces de búsqueda

Una raíz de búsqueda define la base de un espacio de nombres de Shell donde se podrían incluir o excluir ámbitos específicos, y normalmente es el contenedor de nivel más alto de un protocolo que se puede enumerar. No especifica qué partes de este almacén deben indizarse o no; simplemente indica que existe un almacén de contenido y está asociado a un controlador de protocolo registrado. La sintaxis para identificar una dirección URL raíz de búsqueda incluye el protocolo, el identificador de seguridad del almacén o el usuario, la ruta de acceso y, opcionalmente, un elemento específico (como un archivo). En los ejemplos siguientes se muestran dos formas de la sintaxis de una raíz de búsqueda.

<protocol>://<store or SID>\<path>\[item]
or
<protocol>://<store or SID>/<path>/[item]

El <segmento de protocolo> debe estar seguido de dos (2) barras diagonales ('/') a menos que sea el archivo: protocolo, que requiere tres barras diagonales (file:///). El <segmento de sitio o SID> representa un almacén de contenido o un identificador de seguridad de usuario si la raíz de búsqueda está pensada para ser específica del usuario. El <segmento de ruta de acceso> es un conjunto de contenedores, como directorios o carpetas, y puede incluir el carácter comodín '*'. El <segmento de elemento> es opcional y también puede incluir el carácter comodín '*'. Si no incluye un elemento, asegúrese de finalizar el segmento de ruta de acceso con una barra diagonal o el indexador presupone que el último subcontenedador es un elemento.

Por ejemplo, supongamos que ha implementado un controlador de protocolo (myPH) para controlar archivos de tipo *.myext para una aplicación personalizada. Todos estos archivos se ubicarán en la carpeta WorkteamA\ProjectFiles en un equipo local. Raíz de búsqueda que podría tener este aspecto:

  • myPH:///C:\WorkteamA\ProjectFiles\

Supongamos que planea incluir todos los archivos .myext, pero nada más de ese contenedor en el índice. Raíz de búsqueda que podría tener este aspecto:

  • myPH:///C:\WorkteamA\ProjectFiles\*.myext.

Los patrones de caracteres comodín definen direcciones URL mediante el carácter comodín '*' y se consideran un patrón en lugar de una dirección URL, pero la terminología se suele usar indistintamente. Por ejemplo, file:///C:\ProjectA\*\data\ coincidirían con las siguientes direcciones URL:

  • C:\ProjectA\version1\data\
  • C:\ProjectA\version2\data\

Pero ese patrón no coincidiría con esta dirección URL:

  • C:\ProjectA\version1\temp\data\

Debe crear nuevas raíces de búsqueda para contenedores que aún no estén en el ámbito de rastreo del indexador. Si la ruta de acceso C:\ParentScope ya está incluida en el ámbito de rastreo, no es necesario agregar una nueva raíz de búsqueda para C:\ParentScope\ChildScope a menos que sepa que el ámbito secundario se ha excluido anteriormente.

La interfaz de usuario para establecer las opciones de Búsqueda de Windows muestra raíces de búsqueda a los usuarios para que puedan refinar las reglas de ámbito de sus búsquedas. Como parte del proceso de instalación del controlador de protocolo personalizado, el contenedor o la aplicación, puede definir un ámbito de rastreo predeterminado, con reglas de inclusión y exclusión. Estas reglas se presentan a los usuarios finales como ubicaciones. Los usuarios pueden navegar dentro de los subdirectorios de la raíz de búsqueda predefinida y seleccionar los que quieren incluir en las búsquedas o borrar los que quieren excluir.

 

Antes de empezar

Para poder usar cualquiera de las interfaces del Administrador de ámbitos de rastreo (CSM), debe realizar los siguientes pasos previos:

  1. Cree el objeto CrawlSearchManager y obtenga su interfaz ISearchManager .
  2. Llame a ISearchManager::GetCatalog para "SystemIndex" para obtener una instancia de una interfaz ISearchCatalogManager .
  3. Llame a ISearchCatalogManager::GetCrawlScopeManager para obtener una instancia de la interfaz ISearchCrawlScopeManager .

Después de realizar cambios en el Administrador de ámbitos de rastreo (CSM), debe llamar a ISearchCrawlScopeManager::SaveAll. Este método no toma parámetros y devuelve S_OK si se ejecuta correctamente.

 

Windows 7: Nueva API del Administrador de ámbitos de rastreo

En Windows 7 y versiones posteriores, ISearchCrawlScopeManager2 amplía la funcionalidad de la interfaz ISearchCrawlScopeManager . El método ISearchCrawlScopeManager2::GetVersion obtiene la versión del Administrador de ámbitos de rastreo (CSM), que informa a los clientes si el estado del CSM ha cambiado. ISearchCrawlScopeManager2::GetVersion no da lugar a una llamada entre procesos. Si la función se ejecuta correctamente, el puntero que se devuelve permanece válido hasta que el cliente llama a UnmapViewOfFile en el puntero y CloseHandle en el identificador devuelto.

 

Agregar raíces al ámbito de rastreo

ISearchCrawlScopeManager indica al motor de búsqueda que los contenedores rastreen o watch, y los elementos de esos contenedores incluyan o excluyan. Para agregar una nueva raíz de búsqueda, cree una instancia de un objeto ISearchRoot , establezca los atributos raíz y, a continuación, llame a ISearchCrawlScopeManager::AddRoot y páselo un puntero al objeto ISearchRoot . La dirección URL raíz de búsqueda tiene el mismo formato que la raíz de búsqueda descrita anteriormente.

En la tabla siguiente se describen los métodos put pertinentes para ISearchRoot; Windows Search no usa actualmente los otros métodos put de la interfaz. Se recomienda incluir los identificadores de seguridad (SID) de los usuarios en todas las raíces para mejorar la seguridad. Las raíces por usuario son más seguras, ya que las consultas se ejecutan en un proceso por usuario, lo que garantiza que un usuario no puede ver los elementos indexados desde la bandeja de entrada de otro usuario, por ejemplo.

Método Descripción
put_ProvidesNotifications Se establece en TRUE si un controlador de protocolo u otra aplicación notificará al motor de búsqueda los cambios en las direcciones URL en la raíz de búsqueda. La notificación indica que las direcciones URL necesitan volver a indexar.
put_RootURL Establece la dirección URL raíz de la búsqueda actual. La dirección URL toma el formulario raíz de búsqueda descrito anteriormente.

 

 

De forma predeterminada, el indexador no rastrea un ámbito al agregar una raíz de búsqueda. También debe agregar una regla de inclusión para la raíz. Si desea agregar una raíz específica del usuario para una aplicación, esa aplicación debe agregar las raíces adecuadas para los nuevos usuarios cuando se inicie la aplicación.

Para agregar las raíces adecuadas para los nuevos usuarios:

  1. Obtenga el SID del usuario.
  2. Enumere todas las raíces para comprobar si existe uno para este SID.
  3. Agregue una nueva raíz mediante el SID, si es necesario.

 

Quitar raíces del ámbito de rastreo

Puede usar ISearchCrawlScopeManager para quitar una raíz del ámbito de rastreo cuando ya no quiera que se indice esa dirección URL. Al quitar una raíz también se eliminan todas las reglas de ámbito de esa dirección URL. Por ejemplo, supongamos que desea desinstalar un almacén de contenido o su controlador de protocolo de un sistema. Puede desinstalar la aplicación, quitar todos los datos y, a continuación, quitar la raíz de búsqueda del ámbito de rastreo y el Administrador de ámbitos de rastreo quitará la raíz y todas las reglas de ámbito asociadas a la raíz.

Para quitar una raíz de búsqueda existente, llame a ISearchCrawlScopeManager::RemoveRoot con la raíz de búsqueda que desea quitar. La dirección URL raíz de búsqueda tiene el mismo formato que la raíz de búsqueda descrita anteriormente. Este método devuelve S_FALSE si no se encuentra la raíz y un código de error si se produjo un error al quitar una raíz que se encontró.

Al quitar una raíz de búsqueda también se quita la dirección URL de la interfaz de usuario para las opciones de Búsqueda de Windows, por lo que es posible que los usuarios no puedan volver a agregar ese contenedor o ubicación mediante la interfaz de usuario. También es posible quitar todas las invalidaciones del conjunto de usuarios de una raíz de búsqueda y revertir a las reglas de ámbito y raíz de búsqueda originales. Para obtener más información, consulte Administración de reglas de ámbito.

Nota

En Windows Vista, si los usuarios se quitan a través de perfiles de usuario en Panel de control, CSM quita todas las reglas y raíces con su SID y quita sus elementos indexados del catálogo. En Windows XP, debes quitar manualmente las raíces y las reglas de los usuarios.

 

 

Enumerar raíces en el ámbito de rastreo

El CSM enumera las raíces de búsqueda mediante una interfaz de enumerador de estilo COM estándar, IEnumSearchRoots. Puede usar esta interfaz para enumerar raíces de búsqueda con varios fines. Por ejemplo, es posible que desee mostrar todo el ámbito de rastreo en una interfaz de usuario o detectar si una raíz determinada o el elemento secundario de una raíz ya está en el ámbito de rastreo.

 

Referencia

ISearchCrawlScopeManager

ISearchRoot

IEnumSearchRoots

Conceptual

Uso del Administrador de ámbitos de rastreo

Administración de reglas de ámbito