【问题】
我们经常会搜索一个很长的词,例如“国際協力銀行” ,对应的搜索结果中会有关于“国際”“協力”“銀行”相关内如都会搜索到,这样的行为就是分词,那如何知道搜索内如是如何分词的呢?
【解决办法】
使用powershell来实现。例如:
$query = "我是中国人民"
$lcid = 1041
$ssa = Get-SPEnterpriseSearchServiceApplication -Identity "Search Service Application"
$queryInternal = New-Object Microsoft.Office.Server.Search.Query.KeywordQueryInternal($ssa)
$culture = New-Object "System.Globalization.CultureInfo" $lcid
$queryInternal.QueryProperties.Culture = $culture
$wordBreaker = $queryInternal.CreateWordBreaker($false)
$wordBreaker.BreakText($query)
foreach($tokens in $wordBreaker.GetTokens())
{
foreach($token in $tokens)
{
Write-Host $query.Substring($token.SrcPos,$token.SrcLen)
}
}