2012-06-25 103 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適用於重複值,爲什麼它會限制完全不同頁面的結果?

還是要謝謝你