Я создал некоторые управляемые свойства в соответствии с инструкциями по адресу http://technet.microsoft.com/en-us/library/ff621097(v=office.14).aspx. Затем я создал страницу пользовательского приложения SharePoint с помощью поиска KeywordQuery найти только те документы, используя следующий код:SharePoint 2010 KeywordQuery Возвращает пустые управляемые свойства
using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.Office.Server.Search.Query;
using Microsoft.SharePoint.WebControls;
protected System.Data.DataTable TrySearch(string keywords, Int32 pageSize, Int32 page, out Int32 totalPages)
{
int startRow = (page - 1)*rowLimit;
var kwq = new KeywordQuery(Site);
kwq.QueryText = string.Format("Title:\"{0}\"", keywords);
kwq.ResultTypes = ResultType.RelevantResults;
kwq.RowLimit = pageSize;
kwq.StartRow = startRow;
kwq.TrimDuplicates = true;
kwq.HiddenConstraints = "path:\"*/User Docs*\" AND IsDocument:true";
kwq.KeywordInclusion = KeywordInclusion.AllKeywords;
// Default
kwq.SelectProperties.Add("WorkId");
kwq.SelectProperties.Add("Rank");
kwq.SelectProperties.Add("Title");
kwq.SelectProperties.Add("Path");
kwq.SelectProperties.Add("SiteName");
kwq.SelectProperties.Add("HitHighlightedSummary");
kwq.SelectProperties.Add("HitHighlightedProperties");
kwq.SelectProperties.Add("ContentClass");
kwq.SelectProperties.Add("IsDocument");
// Custom (they come back blank even when set as managed properties)
kwq.SelectProperties.Add("IntroText");
kwq.SelectProperties.Add("Date");
kwq.SelectProperties.Add("ListItemId");
ResultTableCollection rtc = kwq.Execute();
var results = new DataTable();
if (rtc.Count == 0)
{
totalPages = 0;
return results;
}
using (ResultTable relevantResults = rtc[ResultType.RelevantResults])
{
results.Load(relevantResults, LoadOption.OverwriteChanges);
totalPages = (int) Math.Round((double) relevantResults.TotalRows/pageSize);
}
return results;
}
Моя проблема в том, что не то, что я делаю, я не могу получить значения обратно для моих управляемых свойств. Поиск работает отлично. Я могу соответствующим образом фильтровать и получать ожидаемые результаты, просто пользовательские столбцы пустые. Меня больше всего интересует идентификатор, но мне бы хотелось получить все пользовательские свойства, о которых я просил.
Может ли быть какая-то настройка, которую я пропустил на сервере? Любая помощь приветствуется.
Честно говоря, я так и не нашел решение. Я не работал над этим проектом за какое-то время, но я уверен, что попробовал бы ползать. Если проект вернется к моему пути, я вернусь к этому. Благодаря! –