Sharepoint 2010 FullTextSQLQuery不返回所有结果

时间:2012-06-25 17:57:11

标签: c# .net sharepoint search full-text-search

我目前有一个非常奇怪的问题。

这是我正在使用的查询:

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éAmaralCosta Nunes”的人。如果我搜索“Costa”,它会返回38个结果,但没有一个是上面的结果。

但是,如果关键字是“Rodrigo Costa”,那么唯一的结果(正确)就是上面的人。

对此有甚么解释吗?

2 个答案:

答案 0 :(得分:1)

谢谢,但我解决了。

原来这是

query.TrimDuplicates = true;
导致问题的

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

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

非常感谢

答案 1 :(得分:0)

您可以尝试在FREETEXT谓词

中为您的内容指定区域设置
CONTAINS | FREETEXT
([<column_identifier>,]'<content_search_condition>' [,LCID])

有关本地化搜索的更多信息here