1

私は現在、非常に奇妙な問題を抱えています。

これは私が使用しているクエリです:

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éAmaralCostaNunes"の人を探していると想像してみてください。「Costa」を検索すると38件の結果が返されますが、上記のものはありません。

ただし、キーワードが「Rodrigo Costa」の場合、(正しく)唯一の結果は上記の人物です。

これについての説明さえありますか?

4

2 に答える 2

1

ありがとう、しかし私はそれを解決しました。

だったことが判明

query.TrimDuplicates = true;

問題の原因となった行。true から false に変更したところ、"costa" 検索でさらに 10 件の結果が返されるようになりました。

ただし、これは意味がありません。TrimDuplicates は重複値用ですが、まったく異なるページの結果を制限したのはなぜですか?

とにかくありがとう

于 2012-06-26T13:09:35.100 に答える
0

FREETEXT述語でコンテンツのロケールを指定することができます

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

ローカライズされた検索の詳細については、こちら

于 2012-06-26T07:41:24.143 に答える