我正在尝试使用KeywordQuery构建KQL查询。 我有一些托管属性列,我想在结果表中显示,但它对我不起作用。
这是代码:
oKeywordQuery = new KeywordQuery(oSite);
oKeywordQuery.SelectProperties.Clear();
oKeywordQuery.QueryText = sQuery;
oKeywordQuery.KeywordInclusion = KeywordInclusion.AllKeywords;
oKeywordQuery.StartRow = 0;
oKeywordQuery.RowLimit = 500;
oKeywordQuery.EnableNicknames = true;
oKeywordQuery.EnablePhonetic = true;
oKeywordQuery.TrimDuplicates = false;
oKeywordQuery.SelectProperties.Add("IsDocument"); //This one as a test I was able to display but no managed properties
foreach (string sDisplayField in oDisplayFields)
{
oKeywordQuery.SelectProperties.Add(sDisplayField);
}
oSearchExecutor = new SearchExecutor();
oResultTableColl = oSearchExecutor.ExecuteQuery(oKeywordQuery);
var oResultTable = oResultTableColl.Filter("TableType", KnownTableTypes.RelevantResults);
oRTable = oResultTable.FirstOrDefault();
我可以获得结果,但不会显示托管属性列。 什么似乎是问题?
答案 0 :(得分:0)
最终我发现我在属性字符串中有WHITE SPACES。 例如:
oKeywordQuery.SelectProperties.Add(" MyPropTitle ");
应该是:
oKeywordQuery.SelectProperties.Add("MyPropTitle");