Por qué la búsqueda de Outlook técnicamente no funciona en absoluto

Un enfoque explicativo pragmático

Repost mi artículo, que se publicó por primera vez en ITK SEGURIDAD


Última actualización hace 1 año por Patrick Ruppelt

Tiempo de lectura: 12 Actas

Bienvenidos a este vídeo en el que intento explicar por qué la búsqueda de Outlook nunca puede funcionar como los usuarios esperan.Me llamo Patrick Ruppelt, llevo más de 25 años trabajando con sistemas informáticos y puedo decirte que las quejas sobre que la búsqueda de Outlook no funciona no cesan. Con cada nuevo cliente que conseguimos, nos dicen que la búsqueda de Outlook no funciona correctamente y que fue problema del anterior responsable de TI. Pero la mayoría de las veces no es culpa suya en absoluto. La búsqueda de Outlook tiene un problema muy conceptual.En este vídeo, me aventuro a dar un enfoque explicativo que está pensado principalmente para personas sin conocimientos técnicos. No resolverá tus problemas con la búsqueda de Outlook, pero quizá pueda ayudarte a comprender por qué todo es como es y, por supuesto, también te mostraré una forma de que puedas buscar realmente de forma fiable y rápida en todos los mensajes de Outlook.Más abajo, como de costumbre, encontrarás una transcripción de este vídeo para que puedas volver a leer los detalles individuales si te interesa.

Empecemos con un ejemplo. Primero inicio Outlook y busco un término de búsqueda de un mensaje actual. Tomemos el término de búsqueda "manzana" y refinémoslo buscando sólo mensajes de "Gymondo" que contengan el término de búsqueda.

La búsqueda en Outlook devuelve resultados incompletos

Si utilizamos la búsqueda de Outlook, encontramos realmente el mensaje que buscamos. Sin embargo, sólo este mensaje y la sugerencia de que volvamos a hacer clic en "Siguiente" para realizar una búsqueda completa.

Dicho y hecho, no cambia gran cosa. Sólo la indicación de que la búsqueda ya está completa y que, si falta algo, hay que afinar la búsqueda. Así que, según la lógica de Microsoft, es culpa del usuario si no encuentra nada.

Dicho y hecho, no cambia gran cosa. Sólo la indicación de que la búsqueda ya está completa y que, si falta algo, hay que afinar la búsqueda. Así que, según la lógica de Microsoft, es culpa del usuario si no encuentra nada.

Se ha completado la búsqueda de MailStore en el archivo de correo electrónico

Pero me atrevo a decir que éste no puede ser el único mensaje de "Gymnodo" en mi buzón con la palabra "manzana", y tampoco creo que haya sido por mis términos de búsqueda.

Así que vamos a probar una segunda forma. La búsqueda a través de nuestro archivo de correo electrónico. Y he aquí que nuestra búsqueda en MailStore devuelve resultados completamente distintos. Incluido este mensaje de hace tres años, que Outlook parece haber olvidado hace tiempo.

Como vemos, la lista de resultados de la búsqueda de Outlook está más que incompleta.

Pero, ¿por qué?

Cómo funciona la búsqueda en bases de datos

Para entenderlo, vamos a sumergirnos un momento en el tema de las bases de datos.

Los desarrolladores de bases de datos me perdonarán que lo explique de forma muy simplificada. Aquí no estoy formando a desarrolladores, sino que me gustaría ilustrar para los profanos cuál es la diferencia fundamental entre una base de datos programada limpiamente y la forma en que Outlook almacena confusamente sus datos.

Me conecto directamente a uno de nuestros servidores de bases de datos. Aquí abro una base de datos contable y miro qué cuentas contables están introducidas en la tabla "cuentas".

Sin saber qué significa exactamente cada cosa, reconocemos una estructura clara de los datos.

En el registro de datos de la cuenta contable "Literatura técnica" con el número de cuenta 4941, vemos una llamada clave privada además de otros detalles para esta entrada. Aquí en el ejemplo llamada pk_index con el número consecutivo 27.

Así, para hacer una búsqueda específica en la base de datos de todas las reservas de la cuenta "Literatura técnica", ya no tengo que buscar en el contenido de todos los artículos. En lugar de eso, puedo limitar específicamente que sólo quiero buscar en las reservas actuales. Esto se hace especificando dónde quiero buscar exactamente.

Además, ya no tengo que buscar en todas las entradas el término de texto "literatura técnica". Esto requiere mucho tiempo y puede llevar varios segundos, si no minutos. En lugar de eso, simplemente filtro la base de datos según la clave privada que he averiguado antes, o como estoy buscando en una tabla ajena, aquí se denomina clave ajena.

En el lenguaje SQL, es algo parecido a esto:

SELECT * FROM rzacct.reservas WHERE fk_cuenta LIKE 27;

En las estadísticas, vemos que esta búsqueda en el servidor tardó sólo 0,17 milisegundos y devolvió una lista completa de resultados sobre exactamente lo que buscábamos.

Y en ese punto lo comparamos con cómo buscaría Outlook en sus archivos.

La estructura de los archivos de Outlook

Para llegar al fondo de la búsqueda de Outlook, primero tenemos que saber cómo se almacena el contenido del correo electrónico en Outlook en primer lugar: En uno o varios archivos del disco duro. Pero no en una base de datos real, sino en diversos formatos que sólo utiliza Microsoft.

La forma en que se aplica técnicamente la búsqueda también depende de varios factores1).

Por un lado, tenemos la distinción de si la búsqueda se ejecuta localmente o en el servidor. En el caso de una búsqueda local, hablamos de "WDS", que significa "Windows Desktop Search". En el otro caso, los expertos hablan de "Búsqueda en Exchange".

Como todo esto aún no es lo suficientemente complicado, los procedimientos de búsqueda difieren según la versión de Outlook que utilice. Aquí, en el artículo de Microsoft, sólo se enumeran las diferencias entre Outlook 2010 y Outlook 2013. Lamentablemente, no he podido encontrar otro más actualizado.

Si ahora crees que los procedimientos de búsqueda del WDS están al menos estandarizados en todos los ordenadores, desgraciadamente estás muy equivocado. Porque la búsqueda en Windows también difiere según la versión de tu sistema Windows básico.

Si el WDS no se resuelve de forma uniforme, ¿quizás se solucione mejor con la variante "Búsqueda en Exchange"? Al menos aquí el administrador tiene más posibilidades de influir.2). Siempre que tengas tu propio servidor Exchange.

Pero volvamos a Outlook una vez más. Además de la función de búsqueda como tal, la segunda cuestión esencial es cómo se organizan los datos. Has acertado, esto tampoco es uniforme en Microsoft.

Existen los llamados "archivos PST", con las versiones más recientes de Outlook los llamados "archivos OST" y si se trata de un servidor Exchange, también tenemos los "archivos EDB", etc.3).

Si profundizamos un poco más en el asunto, nos damos cuenta de que el formato de estos tipos de archivo no ha permanecido igual en los últimos años, sino que están ocurriendo muchas cosas. La única pregunta es si está ocurriendo mucho "bueno".4).

Echemos un vistazo a la especificación de cómo se estructura un "archivo PST". En la especificación de 192 páginas encontramos la estructura física. Muestra esquemáticamente la estructura de cómo se construye un "archivo PST", en el que Outlook almacena los mensajes. ¿Parece complicado? Sí, probablemente lo sea. Ya existe una estructura, no es así, pero de facto cada correo electrónico posterior simplemente se escribe en este único "archivo PST", el siguiente también, y el siguiente se le vuelve a añadir al final.5).

Esto no es técnicamente correcto, pero simplificando se puede decir que, en el peor de los casos, Outlook lee este "archivo PST" de principio a fin y espera encontrar el término de búsqueda en algún lugar del archivo y, cuando lo ha encontrado, también puede leer en este galimatías en qué mensaje se encontró el contenido.

Vayamos un poco más allá. El correo electrónico de nuestro ejemplo inicial no tiene archivos adjuntos ni un contenido especialmente grande. Tiene un tamaño de 161 kilobytes (KB).

Si extraemos técnicamente el contenido del correo electrónico y lo ponemos en un archivo de Word, veremos cuánta información críptica tiene que cribar Outlook sólo para este único mensaje. 323 páginas A4 para un solo mensaje.

Con un buzón típico de 10 GB, habría entonces más de 20 millones de páginas DIN A 4 que habría que buscar cada vez que se hace una búsqueda en Outlook, y todo esto se supone que funciona en una fracción de segundo. Nada en contra de Microsoft, pero este niño hace tiempo que cayó en el pozo.

Resumen

Cuando una búsqueda adecuada en una base de datos, como es el caso de nuestro archivado de correo electrónico MailStore, ya tiene ventajas innegables sobre la búsqueda convencional en Outlook, fabricantes como MailStore refinan todo el asunto aún más a nivel de usuario. Como podemos ver en la descripción de la tecnología de almacenamiento especialmente proporcionada por MailStore, aquí se crean aún más índices de texto completo por usuario. En estos índices, por ejemplo, se indexan los archivos adjuntos, de forma que la búsqueda de MailStore pueda incluso encontrar el texto de los archivos PDF adjuntos de forma rápida y fiable.7

Así que tenemos diferencias significativas no sólo en la forma en que se implementa técnicamente la función de búsqueda, sino sobre todo en la forma en que funciona la gestión de la memoria.

Nuestro archivo de correo, en cambio, tiene una base de datos real con índices e indexación de texto completo. Aquí puedes buscar correctamente. Outlook, en cambio, utiliza un galimatías caótico en el que presumiblemente ni siquiera los desarrolladores de Microsoft saben hoy exactamente qué se almacena y se lee, cuándo, dónde y cómo. Una búsqueda específica es difícil y no cabe esperar listas de resultados claras y completas.

Nuestro consejo: Si quieres una búsqueda fiable en Outlook, utiliza la búsqueda en el archivo de correo. A diferencia de la búsqueda normal de Outlook, la búsqueda de MailStore hace exactamente lo que esperas.

Lista de fuentes

↑1 https://techcommunity.microsoft.com/t5/outlook-global-customer-service/understanding-search-scopes-in-microsoft-outlook/ba-p/428841
↑2 https://social.technet.microsoft.com/wiki/contents/articles/33929.exchange-2016-content-index-and-search.aspx
↑3 https://support.microsoft.com/en-us/office/introduction-to-outlook-data-files-pst-and-ost-222eaf92-a995-45d9-bde2-f331f60e2790
↑4 https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-pst/141923d5-15ab-4ef1-a524-6dce75aae546
↑5 https://interoperability.blob.core.windows.net/files/MS-PST/%5bMS-PST%5d.pdf
↑6 https://interoperability.blob.core.windows.net/files/MS-PST/%5bMS-PST%5d.pdf
↑7 https://www.mailstore.com/de/produkte/mailstore-server/technologie/integrierte-speichertechnologie/
↑8 https://www.mailstore.com/de/produkte/mailstore-server/technologie/integrierte-speichertechnologie/