Sobre la indexación en Sharepoint

20/12/2005 - 21:37 por lboleda | Informe spam
Hola a todos, llevo algún timepo desaparecido de Sharepoint, porque me
movieron de proyecto, pero ahora vuelvo a mis dolores de cabeza con él. El
asunto que me trae ahora es que necesito tener una idea de cómo funciona
la indexación en Sharepoint, si se indexan los documentos accediéndolos
por HTTP o directamente en la DB. Les explico mi situación: tengo unos
documentos almacenados en Sharepoint, pero quiero moverlos de ahí y dejar
solo una "huella" de que esos ficheros existen, es decir, imaginen un
documento de 150Mb en Sharepoint, yo quiero quitarlo de Sharepoint
(sacarlo de la DB) y ponerlo en otro lugar (un folder por ejemplo) y en la
DB sustituir el contenido de ese fichero por un fichero pequeño que
contenga sólo la información de cómo accesar el fichero real, pero
conservando el nombre y extensión del fichero original, de forma tal que
los usuarios vean toda la información del fichero original, pero no esté
el contenido en la DB (esto se logra muy fácil cambiando directamente la
DB)... y cuando algún usuario cliquee sobre el fichero para acceder a él,
a través de un filtro, yo intercepto la llamada y en vez de cargar el
fichero de la DB, busco el fichero original del lugar donde lo tengo
ubicado... esto también es muy fácil de implementar y ya lo tengo hecho
utilizando un Filtro. Pero el problema que tengo ahora es que el índice
(cuando vaya a indizar el contenido del Portal) no me va a encontrar el
fichero real, sino la "huella" que yo dejé en la DB, así que no va a poder
hacer una indexación correcta del fichero, por eso es que necesito
información de cómo trabaja la indexación en Sharepoint, si utiliza HTTP
para acceder a los ficheros (como cuando se hace click, y por lo tanto
puedo interceptar la orden de indexación y suministrar el fichero real
ante la request) o trabaja directamente sobre la DB y en ese caso, estoy
perdido porque no tengo idea de cómo interceptar esa llamada)

De mas está decir que agradezco enormemente, y de antemano, cualquier
ayuda que me puedan prestar, y el tiempo que le han dedicado a leer sobre
mi problemática.

Saludos a todos
Luis

Preguntas similare

Leer las respuestas

#1 Gustavo
21/12/2005 - 09:52 | Informe spam
Hola Luis,
Que pasa si solamente haces una indexacion incremental, de tal forma que el
gatherer "piense" que el documento no ha cambiado? Si funciona, primero
tienes que colocar el documento completo en el sistema, hacerlo indexar,
luego dejar tu "huella" y configurar la indexacion de forma incremental...

Es muy poca la informacion que existe sobre como funciona la maquina de
busqueda (e indexes) de Microsoft; esta informacion es en los tiempos
modernos crucial para una empresa como MS en su competencia con otros
sistemas de busqueda (Google, Yahoo). De hecho, la maquina de indexacion
tiene dos gatheres:

- uno para contenido externo (otros sitios, por ejemplo, fuera de
SharePoint) que es un crawler "normal" que va de sitio en sitio, haciendo
clicks en cada vinculo, y haciendo un index de todo lo que encuentra

- otro que funciona directamente dentro de la Base de Datos de SQL, utiliza
la funcionalidad de SQL de Full Text Index y IFilters para leer la
informacion y hacer los indexes (este es que estarias utilizando en tu caso).

Otra cosa es que recuerda que meterle la mano a la Base de Datos de SPS es
bien peligroso, y, si alguna vez necesitas soporte de Microsoft, te van a
pedir que devuelvas todos los cambios que has hecho a su estado original,
antes de que se tomen la molestia de ni siquiera contestar el telefono.
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx


"Luis Boleda" escribió:

Hola a todos, llevo algún timepo desaparecido de Sharepoint, porque me
movieron de proyecto, pero ahora vuelvo a mis dolores de cabeza con él. El
asunto que me trae ahora es que necesito tener una idea de cómo funciona
la indexación en Sharepoint, si se indexan los documentos accediéndolos
por HTTP o directamente en la DB. Les explico mi situación: tengo unos
documentos almacenados en Sharepoint, pero quiero moverlos de ahí y dejar
solo una "huella" de que esos ficheros existen, es decir, imaginen un
documento de 150Mb en Sharepoint, yo quiero quitarlo de Sharepoint
(sacarlo de la DB) y ponerlo en otro lugar (un folder por ejemplo) y en la
DB sustituir el contenido de ese fichero por un fichero pequeño que
contenga sólo la información de cómo accesar el fichero real, pero
conservando el nombre y extensión del fichero original, de forma tal que
los usuarios vean toda la información del fichero original, pero no esté
el contenido en la DB (esto se logra muy fácil cambiando directamente la
DB)... y cuando algún usuario cliquee sobre el fichero para acceder a él,
a través de un filtro, yo intercepto la llamada y en vez de cargar el
fichero de la DB, busco el fichero original del lugar donde lo tengo
ubicado... esto también es muy fácil de implementar y ya lo tengo hecho
utilizando un Filtro. Pero el problema que tengo ahora es que el índice
(cuando vaya a indizar el contenido del Portal) no me va a encontrar el
fichero real, sino la "huella" que yo dejé en la DB, así que no va a poder
hacer una indexación correcta del fichero, por eso es que necesito
información de cómo trabaja la indexación en Sharepoint, si utiliza HTTP
para acceder a los ficheros (como cuando se hace click, y por lo tanto
puedo interceptar la orden de indexación y suministrar el fichero real
ante la request) o trabaja directamente sobre la DB y en ese caso, estoy
perdido porque no tengo idea de cómo interceptar esa llamada)

De mas está decir que agradezco enormemente, y de antemano, cualquier
ayuda que me puedan prestar, y el tiempo que le han dedicado a leer sobre
mi problemática.

Saludos a todos
Luis


Respuesta Responder a este mensaje
#2 lboleda
21/12/2005 - 16:48 | Informe spam
Hola Gustavo, y muchísimas gracias por, como siempre, estar al "pie
del cañón" ayudándonos a todos. Te explico con más detalles:
Mi compañía hace un producto que "se pega" a productos Microsoft
(Exchange y ahora Sharepoint) por lo que yo no estoy desarrollando
nuestro Sharepoint, sino que estoy tratando de "hackear" Sharepoint, es
decir, tratando de utilizarlo con su lógica interna, y en ocasiones
como esta, amarrarlo a que nuestro producto no desbarate el
funcionamiento de Sharepoint... te darás cuenta que normalmente tengo
que caminar por una "cuerda floja" y pasar miles de trabajos para
lograr algo.

Lo de la modificación de la DB de Sharepoint, sé lo que me dices,
pero ya lo tuvimos que hacer para poder dejar la "huella" en vez del
contenido del documento... realmente no hemos modificado la estructura,
sólo que lo que hacemos es modificar el contenido de 2 tablas (Docs y
DocsVersions) y hasta ahí muy contentos, pero el problema viene cuando
el Sharepoint va a indexar y lo que encuentra en el documento es mi
"huella" y no el documento original: indexa mi huella porque no sabe
que existe el documento original. Lo que ando buscando es una forma de
meterme en el medio entre la indexación y la obtención del contenidoa
indexar. He estado mirando (muy por arriba) los IFilters y los
Protocol Handlers: los IFilter no me sirven de mucho porque yo no
cambio el nombre del documento almacenado (si era un .doc continúa
siendo un .doc) lo único que hago es cambiar el contenido.

Lo más urgente que voy necesitando es cualquier información sobre
cómo funciona la indexación de Sharepoint, porque una vez que yo
tenga indexado el documento, la búsqueda se realiza sobre los índices
y si se queire acceder a un documento con "huella" pues ya tengo el
mecanismo para abrir el documento original y no la huella: usando
Filtros HTTP.

Te agradecería enormenmente cualquier ayuda que me puedas dar.

Saludos
Luis
Respuesta Responder a este mensaje
#3 Gustavo
21/12/2005 - 18:39 | Informe spam
Hola Luis,
He estado buscando algo de informacion sobre el tema, y, como te comentaba
anteriormente, no es mucho lo que he encontrado. Y lo encontrado no es nuevo.
Afortunadamente, que yo sepa, la maquina de index y busqueda no ha cambiado
mucho en los ultimos annos, pero me puedo equivocar...

Informacion general sobre la maquina de indexar:
http://www.microsoft.com/ntserver/P...dexfaq.asp

Un articulo interesante sobre la tecnologia del asunto (SPS 2001, pero la
maquina es la misma +/-, y eso si lo se con seguridad):
http://msdn.microsoft.com/library/d...erview.asp
Mira los articulos al final, que tambien te pueden ayudar (Protocol Handlers)

Un articulo que parece bastante completo:
http://www.devx.com/dotnet/Article/27998

Tambien he estado mirando si encuentro en la Base de Datos de SPS como se
marca un documento que ya ha sido indexado, pero sin grandes resultados. La
idea es que cuando el Gatherer pasa por un documento, tiene que marcarlo en
alguna parte como "visto"; si logras encontrar la marca, puedes hacer indexar
el documento original, lugo lo cambias por tu "huella" y lo marcas como
indexado, de tal forma que el Crawler no lo vuelva a "revisar"... es una
idea...

En cualquier caso, que todos los dioses del universo y de todas las
religiones te ayuden, pues vas a necesitar bastante ayuda...

Un saludo,

PS: Ahora tengo un monton de curiosidad por saber que es el producto que
estas desarrollando... y de que empresa...
Gustavo
http://www.gavd.net/servers/default.aspx


"lboleda" wrote:

Hola Gustavo, y muchísimas gracias por, como siempre, estar al "pie
del cañón" ayudándonos a todos. Te explico con más detalles:
Mi compañía hace un producto que "se pega" a productos Microsoft
(Exchange y ahora Sharepoint) por lo que yo no estoy desarrollando
nuestro Sharepoint, sino que estoy tratando de "hackear" Sharepoint, es
decir, tratando de utilizarlo con su lógica interna, y en ocasiones
como esta, amarrarlo a que nuestro producto no desbarate el
funcionamiento de Sharepoint... te darás cuenta que normalmente tengo
que caminar por una "cuerda floja" y pasar miles de trabajos para
lograr algo.

Lo de la modificación de la DB de Sharepoint, sé lo que me dices,
pero ya lo tuvimos que hacer para poder dejar la "huella" en vez del
contenido del documento... realmente no hemos modificado la estructura,
sólo que lo que hacemos es modificar el contenido de 2 tablas (Docs y
DocsVersions) y hasta ahí muy contentos, pero el problema viene cuando
el Sharepoint va a indexar y lo que encuentra en el documento es mi
"huella" y no el documento original: indexa mi huella porque no sabe
que existe el documento original. Lo que ando buscando es una forma de
meterme en el medio entre la indexación y la obtención del contenidoa
indexar. He estado mirando (muy por arriba) los IFilters y los
Protocol Handlers: los IFilter no me sirven de mucho porque yo no
cambio el nombre del documento almacenado (si era un .doc continúa
siendo un .doc) lo único que hago es cambiar el contenido.

Lo más urgente que voy necesitando es cualquier información sobre
cómo funciona la indexación de Sharepoint, porque una vez que yo
tenga indexado el documento, la búsqueda se realiza sobre los índices
y si se queire acceder a un documento con "huella" pues ya tengo el
mecanismo para abrir el documento original y no la huella: usando
Filtros HTTP.

Te agradecería enormenmente cualquier ayuda que me puedas dar.

Saludos
Luis


Respuesta Responder a este mensaje
#4 lboleda
21/12/2005 - 21:51 | Informe spam
Hola Gustavo, de nuevo muchísimas gracias por la respuesta y por el
tiempo que has dedicado a investigar mi problema. Voy a dedicarle
tiempo a leerme bien los link que me das. Muchisimas gracias de nuevo.

Y sobre el producto no es un secreto, se llama EAS (e-mail archiving
system) y la compañía es Zantaz Inc. Somos una compañía pequeña
(aunque el sitio web diga que somos grandes :-) ) que competimos contra
grandes de verdad !!! por eso es que tenemos que inventarlas en el aire
muchas veces.

Saludos
Luis
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida