Compartir a través de


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.

Vea también

Conceptos

Debugging Custom Item Processing