Zoek suggesties in SharePoint 2010

by Marco Rietveld 11. april 2011 12:35

SharePoint Server 2010 en Search Server 2010 Express maken gebruik van een nieuwe zoek feature, zoek suggesties.

Er zijn pre-query suggesties en post-query suggesties. Een pre-query suggestie is een “type-ahead” functie en wordt weergeven in het zoekveld op de zoekpagina. Zodra er in dit veld getyped wordt, zal SharePoint andere queries weergeven waar op gezocht is. Er worden geen suggesties weergegeven welke geen resultaat geven.

image

Een post-query suggestie wordt na een zoekopdracht weergegeven in de rechterbovenhoek van de pagina met zoekresultaten.

image

Belangrijk is dat zoek suggesties gebaseerd zijn op zoekopdrachten die gebruikers uitvoeren en door te klikken op de resultaten. Een  suggestie wordt automatisch toegevoegd nadat er 6 keer binnen een jaar op een resultaat wordt geklikt. Na de installatie van SharePoint worden er dus geen suggesties weergegeven bij een zoekopdracht.

Een mogelijkheid is om handmatig suggesties dmv PowerShell toe te voegen.

Een zoek suggestie toevoegen:

$ssa=Get-SPEnterpriseSearchServiceApplication 
New-SPEnterpriseSearchLanguageResourcePhrase -SearchApplication $ssa -Language en-US -Type QuerySuggestionAlwaysSuggest -Name "SharePoint Server" 
$timer=Get-SPTimerJob|? {$_.Name -eq "Prepare Query Suggestions"} 
$timer.RunNow()

Een lijst weergeven met alle zoek suggesties:

Get-SPEnterpriseSearchQuerySuggestionCandidates -SearchApplication $ssa

Een zoek suggestie kan verwijderd worden met:

Remove-SPEnterpriseSearchLanguageResourcePhrase -SearchApplication $ssa -Language En-Us -Type QuerySuggestionAlwaysSuggest -Identity "SharePoint Server"

Een andere mogelijkheid is het “bulk” toevoegen van suggesties.
Dit kan op 2 manieren, vanuit een SharePoint Term Store of vanuit een CSV file.

Suggesties toevoegen vanuit een Term Store kan met het volgende PowerShell script:

$centraladminurl = 'http://URL:PORT'
 # fill in the name of the search service application
 $searchservicename = "Search Service Application"
 # fill in the name of the termstore
 $termstorename = "Managed Metadata"
 # fill in the name of the group
 $groupname = "GROUP"
 # fill in the name of the termset
 $termsetname = "TERMSET"
 
# Connect with the taxonomy
 $taxonomySite = get-SPSite $centraladminurl
 $taxonomySession = Get-SPTaxonomySession -site $taxonomySite
 $termStore = $taxonomySession.TermStores[$termstorename]
 write-host "Connection made with term store -"$termStore.Name
 
# connect with the search service application
 $ss = Get-SPEnterpriseSearchServiceapplication -Identity $searchservicename
 
# function to add a query suggestion
 function addqs($term)
 {
   New-SPEnterpriseSearchLanguageResourcePhrase -SearchApplication $ss -Language En-Us -Type QuerySuggestionAlwaysSuggest -Name $term.Name -ErrorAction SilentlyContinue
   Write-Host $term.Name
   foreach($nonrootterm in $term.get_Terms())
     {
         addqs($nonrootterm)
     }
 }
 
$termStoreGroup = $termStore.Groups[$groupname]
 $termSet = $termStoreGroup.TermSets[$termsetname]
 
foreach ($term in $termSet.get_Terms())
 {
     addqs($term)
 }
 
# Starting the timer job to prepare the query suggestions
 $job = Get-SPTimerJob "Prepare query suggestions"
 $job | Start-SPTimerJob
 Write-Host "Timer job started"
 
$taxonomySite.Dispose()
 Write-Host "Connection disposed"

Suggesties toevoegen vanuit een CSV file kan met het volgende PowerShell script:

De inhoud van de CSV file moet beginnen met het woord Suggestion
Voorbeeld CSV file:

Suggestion
SharePoint Online
SharePoint Foundation
SharePoint Workspace 2010
SharePoint Services
SharePoint Designer 2010

#Set up default variables
$csvfile="C:\SearchSuggestions.csv"
$ssa = Get-SPEnterpriseSearchServiceapplication -Identity "Search Service Application" 

#Create Lists from each item in CSV file
$csvData = Import-Csv $csvfile
foreach ($line in $csvData)
{
    New-SPEnterpriseSearchLanguageResourcePhrase -SearchApplication $ssa -Language en-US -Type QuerySuggestionAlwaysSuggest -Name $line.Suggestion
} 

$timerJob = Get-SPTimerJob "Prepare query suggestions"
$timerJob.RunNow()

Tags: | |

Reactie plaatsen


  • Reactie
  • Live voorbeeld
Loading

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2018 SharePoint Geek