Probar características de consulta personalizadas (FAST Search Server 2010 for SharePoint)
Puede probar características relacionadas con consultas mediante un sencillo script Windows PowerShell.
Última modificación: jueves, 01 de septiembre de 2011
Hace referencia a: SharePoint Server 2010
De este modo, resulta más fácil solucionar errores de configuración y determinar si el error se encuentra en la configuración de granja de servidores de FAST Search Server 2010 for SharePoint o en la configuración del elemento web.
Se aplica a: Microsoft FAST Search Server 2010 for SharePoint
Script de Windows PowerShell para ejecutar una consulta mediante la interfaz KeywordQuery
El siguiente script de Windows PowerShell ejecuta una consulta mediante la interfaz KeywordQuery y devuelve los datos de los resultados de la consulta seleccionada. El script resulta útil para comprobar lo siguiente:
Comprobar que una propiedad administrada incluye el contenido esperado
Comprobar que se devuelven los datos de refinamiento de consulta correctos con el resultado de la consulta
Probar la clasificación de relevancia personalizada
Probar características avanzadas al usar el lenguaje de consulta FAST (FQL
Puede guardar el siguiente código de ejemplo en un archivo .ps1y ejecutarlo desde la Consola de administración de SharePoint 2010.
function usage($cmd) {
write-host ""
write-host "Simple FQL query tester."
write-host "Returns first matching items including content for a custom"
write-host "managed property, and associated query refinement data."
write-host "Useful for testing ranking and custom refiners."
write-host ""
write-host "usage: $cmd <URL> <Hits> <Property> <Query>"
write-host " <URL> - Specifies the URL for the query front-end"
write-host " web server of the SharePoint farm."
write-host " <Hits> - Number of hits to return."
write-host " <Property> - Specifies the name of a managed property."
write-host " Prints the content of the property and"
write-host " associated query refiner data."
write-host " Use lowercase only, even if the property name"
write-host " contains uppercase letters."
write-host " <Query> - The query string in FQL syntax."
write-host " Use single quotes if it contains spaces or"
write-host " double quotes."
exit
}
# argument checks
switch ($args.count) {
4 { $siteurl = $args[0]
$hits = $args[1]
$managedPropertyName = $args[2]
$query = $args[3] }
default { usage $myinvocation.mycommand.definition }
}
# The refiner has the same name as the managed property.
$refiner = $managedPropertyName
$site = new-Object Microsoft.SharePoint.SPSite $siteUrl
# Use the KeywordQuery interface:
$kq = new-Object Microsoft.Office.Server.Search.Query.KeywordQuery $site
$kq.ResultsProvider = [Microsoft.Office.Server.Search.Query.SearchProvider]::FASTSearch
$kq.QueryText = $query
$kq.EnableFQL = 1
# Return title, url and the new managed property:
$props = $kq.SelectProperties
$cnt = $props.Add($managedPropertyName)
$cnt = $props.Add("title")
$cnt = $props.Add("url")
$cnt = $props.Add("rank")
# Number of hits to return:
$kq.RowLimit = $hits
$kq.ResultTypes = [Microsoft.Office.Server.Search.Query.ResultType]::RelevantResults -bor [Microsoft.Office.Server.Search.Query.ResultType]::RefinementResults
$kq.Refiners = $refiner
$rtc = $kq.Execute()
Write-Host ""
Write-Host -ForegroundColor Yellow "Search Result data"
Write-Host ""
Write-Host "Backend time :" $rtc.DatabaseTime "ms"
Write-Host "Elapsed time :" $rtc.ElapsedTime "ms"
Write-Host "Query terms :" $rtc.QueryTerms
if ($rtc.Exists([Microsoft.Office.Server.Search.Query.ResultType]::RelevantResults))
{
$crt = $rtc.Item([Microsoft.Office.Server.Search.Query.ResultType]::RelevantResults)
$cdt = $crt.Table
Write-Host "Results returned :" $crt.Table.Rows.Count
Write-Host "Results total :" $crt.TotalRows
Write-Host ""
Write-Host -ForegroundColor Yellow "Managed Property Value"
$cdt.Rows | Format-Table -autosize -property title, url, rank, $managedPropertyName
}
if ($rtc.Exists([Microsoft.Office.Server.Search.Query.ResultType]::RefinementResults))
{
$rrt = $rtc.Item([Microsoft.Office.Server.Search.Query.ResultType]::RefinementResults)
$rdt = $rrt.Table
Write-Host ""
if($rdt.Rows.Count -gt 0)
{
Write-Host -ForegroundColor Yellow "Refinements"
$rdt.Rows | Format-Table -autosize -property RefinerName, RefinementName, RefinementToken, RefinementCount
}
else
{
write-Host -ForegroundColor Red "No refinements found for refiner " $refiner
}
}
Nota
El script acepta consultas especificadas mediante la sintaxis del lenguaje de consulta FAST (FQL). Para los filtros de propiedad básicos (propiedad:valor) y las consultas de un único término, la sintaxis es igual a las consultas que escribe en cualquier cuadro de consulta de SharePoint Server 2010.