Title: Extensibilidad en las tecnologas de Bsqueda de SharePoint Portal Server 2003
1Extensibilidad en las tecnologías de Búsquedade
SharePoint Portal Server 2003
César de la Torre Software Architect Microsoft
MVP MCSE MCT Renacimiento ctorre_at_renacimiento
.com
2Comparación de Tecnologías de Búsqueda
3Extensibilidad en la Búsqueda
- Uso del Buscador de SharePoint Portal Server
desde otras aplicaciones - Web-Service Query de SharePoint Portal Server
- Modelo de Objetos
- Extender la Búsqueda de SharePoint Portal Server
para Indexar otros tipos de contenidos - IFilter, IProtocolHandler, IWordbreaker, IStemmer
- Modificar el Interfaz de Usuario por defecto
del Buscador - Componentes custom de búsqueda
- Web-Part de resultados de Búsqueda
- Hecho p.e. en el Portal en Mis Documentos
- Personalización de la página de resultados
4Servicio Query de SharePoint Portal
ServerFunciones
- Query
- Acepta Query XML
- Definido por el namespace urnMicrosoft.Search.Que
ry - Devuelve Response XML
- Definido por el namespace urnMicrosoft.Search.Res
ponse - QueryEx
- Acepta Query XML
- Definido por el namespace urnMicrosoft.Search.Que
ry - Devuelve resultados de búsqueda como DataSets
5Servicio Query de SharePoint Portal
ServerFunciones
- Registro
- Definido por el namespace urnMicrosoft.Search.Reg
istration - Devuelve el nombre de un portal/sitio
- SPSGetPortalSearchInfo
- Devuelve una lista de los alcances de búsqueda y
catálogos - Status
- Devuelve un código de éxito indicando si el
proveedor de búsqueda está disponible
6Aplicación ASP.NET que utiliza los componentes
de Búsqueda de SPS-2003 (1)
7Aplicación ASP.NET que utiliza los componentes
de Búsqueda de SPS-2003 (2)
8Aplicación ASP.NET que utiliza los componentes
de Búsqueda de SPS-2003 (3)
9Aplicación ASP.NET que utiliza los componentes
de Búsqueda de SPS-2003 (4)
10Aplicación ASP.NET ADO.NET B.D. (5)
11Servicio Query de SharePoint Portal
ServerFunciones
- Añadir Web-Reference
- Servicio-Web en http//ltportalgt/_vti_bin/search.as
mx - Autenticar
- Formular y mandar una query
12Servicio Query de SharePoint Portal
ServerSintaxis SQL de SharePoint Portal Server
Search
- Ayuda sobre la sintaxis
- Microsoft SharePoint Portal Server 2001 SDK
- Gestión de Propiedades de Contenido Indexado
- Gestión de Fuentes de Contenido
- SPSGetPortalSearchInfo()
- Clase SPSQueryServiceConst
- SELECT, WHERE, CONTAINS
13Servicio Query de SharePoint Portal
ServerSintaxis SQL de SharePoint Portal Server
Search
- QueryText Pointers
- QueryText type'STRING
- Returns results with some Research Task Pane
intelligent formatting - QueryText type'MSSQLFT
- Query() returns 2 columns regardless of query
- DAVDisplayName, DAVhref
- SELECT must contain urnschemas.microsoft.comfull
textqueryinfosdid
14Desarrollo de un Cliente de Prueba contra el
WebService Query de SharePoint Portal Server
15Panel de Tareas de Búsqueda y ReferenciasResumen
- Panel de Taréas de aplicaciones Microsoft Office
System - Permite a los usuarios hacer búsquedas en las
fuentes de SPS - Se podría desarrollar algo similar en otras
aplicaciones - Proporciona contenido rico y Formularios
16Panel de Tareas de Búsqueda y Referencias
Compatibilidad con el Servicio de Query de
SharePoint Portal Server
- Función de Registro
- Función de Query
- Response XML
17Extender SharePoint Portal Server para Indexar
otros Contenidos
- Visión global de la Arquitectura
- Herramientas sobre las que desarrollar
- Protocol Handlers
- Filters
- Word Breakers
18Características de Búsqueda
- Escalabilidad
- Desde 5 M Docs a 20 M Docs
- Consultas cruzadas a catálogos, consultas
balanceadas (NLB) - Muy importante para escenarios Empresariales
- Servicios de Portales Compartidos
- Agregación de Contenido
- Ranking de Relevancia Probabilística
- Notificaciones/Alertas, Asistente de Temas
- Crawling Adaptavivo
- Tecnología común de búsqueda a lo largo de la
oferta de productos Microsoft
19Filters y Protocol Handlers
- Las capacidades de indexación de SharePoint
Portal Server puede extenderse mediante el
desarrollo de Protocol Handlers e IFilters - Los Protocol Handlers se usan para extender las
capacidades de indexación de SPS hacia otras
fuentes de contenido. - Los IFilters se usan generalmente para indexar
tipos específicos de ficheros - Este tipo de desarrollo es a bajo nivel se tiene
que hacer en COM y C - Desarrollo de componentes COM, resultando en una
.DLL - P.e. desarrollo con VC.NET para desarrollar estos
componentes COM Es una ayuda C con atributos,
pero en cualquier caso, NO es Código manejado
(por el CLR)
20Estructura de la Búsqueda
21Protocol Handler General Features
- Registers with gatherer
- Connects to external content source
- Collects data from external content source
- Binds to content in external content source
streams back to gatherer - Obtains metadata and security information on
external content source and sends back to
gatherer - Sends LCID info to gatherer where appropriate.
22Protocol Handlers proporcionados por Microsoft
- Microsoft Search Service proporciona varios
out-of-the-box - file//
- http//
- Exchange
- Profiles / Active Directory
- B.D. Lotus Notes
- Sitios y Portales SharePoint
23Características generales de IFilter
- Extiende los tipos de ficheros que se pueden
indexar - También basado en COM, el resultado final es una
.DLL - Extrae propiedades internas de los ficheros así
como de su contenido - Los IFilters se pueden usar con cualquier
vehículo Microsoft Search, no solamente con
SharePoint Portal Server 2003 - SPS-2001
- Microsoft Windows
- SQL Server
- Microsoft Exchange Server
24IFilters proporcionados por Microsoft
- Microsoft Search Service proporciona los
siguientes IFilters directamente - Todos los formatos Office System
- TIFF
- XML
- IFilters de terceras partes
- PDF
- CAD (.dwg)
25Personalización del interfaz gráfico de Búsqueda
- Resumen
- Personalización
- Ajuste del interfaz proporcionado (Out-of-Box)
- Extensibilidad
- Web-Part SearchResults
- Crear un Web-Part de Búsqueda nuevo,
personalizado - Crear un Menú Nuevo de Búsqueda
26Web-Pats de Búsqueda de SharePoint Portal Server
- Ver en siguiente slide -)
27- Caja Búsqueda
- Menú Búsqueda
- Búsqueda Avanzada
- Resultados Búsqueda
28Web-Part de Resultado de Búsquedas
- Personalizar mediante las propiedades de Web-Part
- Número de elementos a devolver
- Texto a mostrar cuando se cumple la condición de
No hay resultados - Ancho de columnas
29Cómo Personalizar el WebPart de Búsqueda
demo
30Web-Part de Resultado de Búsquedas
- Personalizar más mediante el fichero DWP
- Llamar a la página con
- http//MiServidor/Search.aspx?ModeEditPageViewS
hared - Exporta el WebPart de Resultado de Búsqueda
31Web-Part de Resultado de Búsquedas Propiedades
del fichero DWP
- ResultListID
- FixLayout
- GroupByList
- DefaultGroupBy
- SortByList
- DefaultSortBy
- ColumnURIs
- ColumnWidths
- TextForNoResults
- RowNumberForEachItem
- EnableQueryLoggingSearch
- SupportExpandCollapseAll
- EnableSQLCommandLogging
- ColumnDisplayNames
- OpenNewWindowForMatchingItems
- ShowRankForEachItem
- MaxMatchingItemsNumber
32Search Results Web Part - DWP
- Important properties for customizing the search
query - QueryTemplateSelectPart
- QueryTemplateFromPart
- QueryTemplateWherePart
- QueryTemplateOrderByPart
33Cómo añadir soporte para Búsquedas con wildcards
demo
34Extender la página de Búsqueda con componentes
propios
- NOTA A partir de este punto, los cambios que se
hagan puede que no (y probablemente no) estén
soportados por MS (Soporte de Microsoft)
35Página de Web-Parts de Búsqueda
- Página Ghosted
- C\Program Files\Common Files\Microsoft
Shared\web server extensions\60\TEMPLATE\LCID\SP
S - Controles en el fichero de Code Behind
- RightBodySectionSearchBox
- SearchResultManagement
- EditModeSettingsLink
- Y mas
36Optional DEMO
- Show the Code behind file and the different Web
controls used
37Search Result Web Part
The different Columns can have a heading by
overriding the GenerateHtmlForRowColumn function
Column 0
Column 1
Column 2
Column 3
Row 0
Row 1
Row 2
Row 3
Each row can be overridden by using the
GenerateHtmlOneRowForOneItem
The Icon can be overridden with the
GenerateHtmlForItemIcon function
38Adding a new option to open the SharePoint list
itself, not the list item
demo
39Limits the Advanced Search Web Part
- It isnt possible to
- Add new property groups
- Add new controls
- Change the layout
- Add new operations
40Working Together
Search Box
Search Menu
Advanced Search
Search Result
JavaScript (Search.js and in HTML)
Hidden Fields
41Creating a New Advanced Search Web Part
SearchConstructor
CustomViewState
SearchPageData
42Creating a New Advanced Search Web Part -
SearchPageData
using Microsoft.SharePoint.Portal.Schema PortalCo
ntext ctx PortalContext.Current PropertyDefini
tionCollection defCol new PropertyDefinitionCo
llection( ctx, false ) foreach(PropertyDefinitio
n def in defCol ) ..
43Creating a New Advanced Search Web Part -
SearchPageData
using Microsoft.SharePoint.Portal.Search.ObjectMo
del SearchScopes PortalSearchScopes new
SearchScopes(ctx) SearchScope scope int i 0
while(PortalSearchScopes.GetAllScopes().Length
gti) scope PortalSearchScopes.GetSearchSc
ope( PortalSearchScopes.GetAllScopes()i
.Name) SearchScopeEntity scopeEntities
scope.GetEntities() for(int ii0
iiltscopeEntities.Length ii)
if(scopeEntitiesii.Type 1)
Debug.WriteLine(scopeEntitiesii.Value)
i 1
44Creating a New Search Menu
- JavaScript Functions
- Onshd
- OnToggleAllGroups
- OnPinSearch
- OnSubscribeSearch
- TooleMgmtAdv
45Creating a New Search Menu
//add Show Less / Show More actionButton new
ToolBarButton() actionToolbar.Controls.Add(action
Button) actionButton.ID TargedID
"_ShowLessMore" actionButton.AllowScriptInUrl
true actionButton.Enabled IsEnabled() actionBu
tton.ToolTip "Show less or more" actionButton.A
ccessKey "m" actionButton.NavigateUrl
"javascriptOnshd('" TargedID "', 'a','"
actionButton.UniqueID "', 'Show Less', 'Show
More')" actionButton.Text IsShowMore()?"Show
Less""Show More"
46Installing the Custom Search Web Part samples
demo
47Resumen
- Búsqueda Potente
- Posibilidad de realizar búsquedas por diferentes
apps. clientes - Personalizable y Extensible con muchas opciones a
diferentes niveles