2012-06-25 45 views
1

我目前有一个很奇怪的问题。Sharepoint 2010 FullTextSQLQuery不返回所有结果

这是我使用的查询:

string queryText = string.Format("SELECT Path, TelefoneContacto, EmpresaContacto, DireccaoContacto, MailContacto, TelemovelContacto, NomeContacto FROM scope() WHERE FREETEXT(NomeContacto, '{0}') AND (CONTAINS(Path,'/Contactos/Pages/')) ORDER BY \"NomeContacto\" ASC", keyword); 
FullTextSqlQuery query = new FullTextSqlQuery(site); 
query.ResultTypes = ResultType.RelevantResults; 
query.EnableStemming = true; 
query.TrimDuplicates = true;//alterado 4 Junho 2012 
query.Hint = QueryHint.OptimizeWithPropertyStore; 
query.KeywordInclusion = KeywordInclusion.AllKeywords; 
query.Culture = SPContext.Current.Web.Locale; 
query.RowLimit = 200; 
query.QueryText = queryText; 

现在,一个例子。

在我搜索栏是“NomeContacto”。 想象一下,我正在寻找一位NomeContacto =“RodrigoJoséAmaral Costa Nunes”的人。如果我搜索“哥斯达黎加”,它会返回38个结果,但以上都不是。

然而,如果关键字是“罗德里戈科斯塔”,那么唯一的结果(正确地)是上述的人。

有甚至有解释吗?

回答

0

你可以试着为你指定的区域设置内容FREETEXT谓词

CONTAINS | FREETEXT 
([<column_identifier>,]'<content_search_condition>' [,LCID]) 

更多信息有关localizaed搜索here

1

谢谢,但我解决了这个问题。

原来,这是这是造成这一问题的

query.TrimDuplicates = true; 

线。我将它从true更改为false,现在它在“costa”搜索中返回10个更多结果。

但是,这没有任何意义。 TrimDuplicates适用于重复值,为什么它会限制完全不同页面的结果?

还是要谢谢你