Personalización de la busqueda en Sharepoint

24/01/2006 - 12:58 por sespartero | Informe spam
Hola, Tengo la intención de personalizar la busqueda en sharepoint para
poder realizar busquedas de documentos basados en algunos metadatos. Para
ello tal y como indica el articulo de microsoft
http://msdn.microsoft.com/library/d...150743.asp

voy a lanzar consultas SQL al sistema de busqueda microsoft pero al usar
la siguiente instrucción:

PortalContext context = PortalApplication.GetContext(Context);
Me da esta esta excepcion

System.Security.SecurityException: Request for the permission of type
Microsoft.SharePoint.Security.SharePointPermission,
Microsoft.SharePoint.Security, Version.0.0.0, Culture=neutral,
PublicKeyTokenqe9bce111e9429c failed. at
System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet
grantedSet, PermissionSet deniedSet, CodeAccessPermission demand,
PermissionToken permToken) at
System.Security.CodeAccessSecurityEngine.Check(PermissionToken permToken,
CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 checkFrames,
Int32 unrestrictedOverride) at
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,
StackCrawlMark& stackMark) at
System.Security.CodeAccessPermission.Demand() at
Microsoft.SharePoint.Portal.PortalApplication.GetContext(HttpContext
context) at LastDocumentsISR.LastDocumentsISR.CreateChildControls()

Parece claro que es algo de la configuración, he estado mirando los
ficheros web.config, y he añadido un SafeControl

<SafeControl Assembly="Microsoft.SharePoint, Version.0.0.0,
Culture=neutral, PublicKeyTokenqe9bce111e9429c"
Namespace="Microsoft.SharePoint.Security" TypeName="*" />

Pero sigue sin funcionar, alguna sugerencia.

Preguntas similare

Leer las respuestas

#6 Tako
06/02/2006 - 22:45 | Informe spam
Mis dos (o tres) centavos de ayuda, espero que algo te sirva:

La "documentación" de la sintaxis SQL para las búsquedas (tiene cosas
algo enrevesadas):
http://www.microsoft.com/downloads/...laylang=en

Dos programitas que te ayudan a la hora de sacar el SQL de búsqueda:
http://www.paraesthesia.com/blog/co...Y4_0_1_0_C
http://www.gotdotnet.com/Community/...3d2cbb68c5

De todas formas el truco del almendruco, por si no lo sabes y por si lo
puedes aplicar, siempre ha sido hacer la búsqueda por la interfaz Web y
luego ver la consulta SQL que te devuelve el motor en la propia página de
resultados.

Suerteeee.


Sergio wrote:
Hola,

Gracias por la ayuda, de hecho ya he conseguido resultados parciales
en mi servidor de producción aunque sigo teniendo el mismo problema
en el de desarrollo, así que de momento tengo el trabajo un poco
estancado.

Por supuesto estaba utilizando la webpart en un area de SPS no en un
sitio WSS.

El problema ahora es que al realizar busquedas sobre datos del tipo
querySql = "SELECT \"";
querySql > querySql+"urn:schemas-microsoft-com:office:office#MetaDatoLibreria\"
,"; querySql+=" FROM ( TABLE Portal_Content..Scope() UNION ALL TABLE
Non_Portal_Content..Scope() ) ";

Obtengo resultados vacios, no soy capaz de obtener el valor del
metadato. No estoy totalmente de que esté buscando lo correcto.
¿Alguien sabe como se hace esto?

La otra posibilidad que se me ocurre es una navegación "a pelo" por el
modelo de objetos, pero teniendo una máquina exclusivamente encargada
de la busquedas y de generar los índices me parece una perdida de
rendimiento muy alta.


csegura" wrote:

Ten encuenta que ese contexto solo lo puedes usar dentro del portal
o de las areas del portal si estas poniendo el webpart en un sitio
no funcionará.

Carlos Segura Sanz
www.ideseg.com


"Sergio" escribió:

Hola, Tengo la intención de personalizar la busqueda en sharepoint
para poder realizar busquedas de documentos basados en algunos
metadatos. Para ello tal y como indica el articulo de microsoft
http://msdn.microsoft.com/library/d...150743.asp

voy a lanzar consultas SQL al sistema de busqueda microsoft pero al
usar la siguiente instrucción:

PortalContext context = PortalApplication.GetContext(Context);
Me da esta esta excepcion

System.Security.SecurityException: Request for the permission of
type Microsoft.SharePoint.Security.SharePointPermission,
Microsoft.SharePoint.Security, Version.0.0.0, Culture=neutral,
PublicKeyTokenqe9bce111e9429c failed. at
System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet
grantedSet, PermissionSet deniedSet, CodeAccessPermission demand,
PermissionToken permToken) at
System.Security.CodeAccessSecurityEngine.Check(PermissionToken
permToken, CodeAccessPermission demand, StackCrawlMark& stackMark,
Int32 checkFrames, Int32 unrestrictedOverride) at
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission
cap, StackCrawlMark& stackMark) at
System.Security.CodeAccessPermission.Demand() at
Microsoft.SharePoint.Portal.PortalApplication.GetContext(HttpContext
context) at LastDocumentsISR.LastDocumentsISR.CreateChildControls()

Parece claro que es algo de la configuración, he estado mirando los
ficheros web.config, y he añadido un SafeControl

<SafeControl Assembly="Microsoft.SharePoint, Version.0.0.0,
Culture=neutral, PublicKeyTokenqe9bce111e9429c"
Namespace="Microsoft.SharePoint.Security" TypeName="*" />

Pero sigue sin funcionar, alguna sugerencia.
Respuesta Responder a este mensaje
#7 Sergio
07/02/2006 - 08:25 | Informe spam
Muchas gracias a los dos, voy a seguir investigando y ya os contare si
consigo algún resultado.

Saludos

"Tako" wrote:


Mis dos (o tres) centavos de ayuda, espero que algo te sirva:

La "documentación" de la sintaxis SQL para las búsquedas (tiene cosas
algo enrevesadas):
http://www.microsoft.com/downloads/...laylang=en

Dos programitas que te ayudan a la hora de sacar el SQL de búsqueda:
http://www.paraesthesia.com/blog/co...Y4_0_1_0_C
http://www.gotdotnet.com/Community/...3d2cbb68c5

De todas formas el truco del almendruco, por si no lo sabes y por si lo
puedes aplicar, siempre ha sido hacer la búsqueda por la interfaz Web y
luego ver la consulta SQL que te devuelve el motor en la propia página de
resultados.

Suerteeee.


Sergio wrote:
> Hola,
>
> Gracias por la ayuda, de hecho ya he conseguido resultados parciales
> en mi servidor de producción aunque sigo teniendo el mismo problema
> en el de desarrollo, así que de momento tengo el trabajo un poco
> estancado.
>
> Por supuesto estaba utilizando la webpart en un area de SPS no en un
> sitio WSS.
>
> El problema ahora es que al realizar busquedas sobre datos del tipo
> querySql = "SELECT \"";
> querySql > > querySql+"urn:schemas-microsoft-com:office:office#MetaDatoLibreria\"
> ,"; querySql+=" FROM ( TABLE Portal_Content..Scope() UNION ALL TABLE
> Non_Portal_Content..Scope() ) ";
>
> Obtengo resultados vacios, no soy capaz de obtener el valor del
> metadato. No estoy totalmente de que esté buscando lo correcto.
> ¿Alguien sabe como se hace esto?
>
> La otra posibilidad que se me ocurre es una navegación "a pelo" por el
> modelo de objetos, pero teniendo una máquina exclusivamente encargada
> de la busquedas y de generar los índices me parece una perdida de
> rendimiento muy alta.
>
>
> csegura" wrote:
>
>> Ten encuenta que ese contexto solo lo puedes usar dentro del portal
>> o de las areas del portal si estas poniendo el webpart en un sitio
>> no funcionará.
>>
>> Carlos Segura Sanz
>> www.ideseg.com
>>
>>
>> "Sergio" escribió:
>>
>>> Hola, Tengo la intención de personalizar la busqueda en sharepoint
>>> para poder realizar busquedas de documentos basados en algunos
>>> metadatos. Para ello tal y como indica el articulo de microsoft
>>> http://msdn.microsoft.com/library/d...150743.asp
>>>
>>> voy a lanzar consultas SQL al sistema de busqueda microsoft pero al
>>> usar la siguiente instrucción:
>>>
>>> PortalContext context = PortalApplication.GetContext(Context);
>>> Me da esta esta excepcion
>>>
>>> System.Security.SecurityException: Request for the permission of
>>> type Microsoft.SharePoint.Security.SharePointPermission,
>>> Microsoft.SharePoint.Security, Version.0.0.0, Culture=neutral,
>>> PublicKeyTokenqe9bce111e9429c failed. at
>>> System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet
>>> grantedSet, PermissionSet deniedSet, CodeAccessPermission demand,
>>> PermissionToken permToken) at
>>> System.Security.CodeAccessSecurityEngine.Check(PermissionToken
>>> permToken, CodeAccessPermission demand, StackCrawlMark& stackMark,
>>> Int32 checkFrames, Int32 unrestrictedOverride) at
>>> System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission
>>> cap, StackCrawlMark& stackMark) at
>>> System.Security.CodeAccessPermission.Demand() at
>>> Microsoft.SharePoint.Portal.PortalApplication.GetContext(HttpContext
>>> context) at LastDocumentsISR.LastDocumentsISR.CreateChildControls()
>>>
>>> Parece claro que es algo de la configuración, he estado mirando los
>>> ficheros web.config, y he añadido un SafeControl
>>>
>>> <SafeControl Assembly="Microsoft.SharePoint, Version.0.0.0,
>>> Culture=neutral, PublicKeyTokenqe9bce111e9429c"
>>> Namespace="Microsoft.SharePoint.Security" TypeName="*" />
>>>
>>> Pero sigue sin funcionar, alguna sugerencia.



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