我是sharebe newbee,无法使用Sharepoint 2010 Foundation中的搜索API返回任何搜索结果。
到目前为止,我采取了以下步骤。
TypeName:SharePoint Foundation搜索
说明:搜索服务器上的索引文件
Id:91e01ce1-016e-44e0-a938-035d37613b70
服务器:SPServer名称= V-SP2010
服务:SPSearchService名称= SPSearch4
IndexLocation:C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Exten
sions \ 14个\ DATA \应用
ProxyType:默认
状态:在线
现在,当我尝试使用搜索API复制搜索结果时,我收到错误或0结果。
以下是一些示例代码:
using Microsoft.SharePoint.Search.Query;
using (var site = new SPSite(_sharepointUrl, token))
{
//
FullTextSqlQuery fullTextSqlQuery = new FullTextSqlQuery(site)
{
QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope() WHERE \"scope\"='All Sites' AND CONTAINS('\"{0}\"')", searchPhrase),
//QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope()", searchPhrase),
TrimDuplicates = true,
StartRow = 0,
RowLimit = 200,
ResultTypes = ResultType.RelevantResults
//IgnoreAllNoiseQuery = false
};
ResultTableCollection resultTableCollection = fullTextSqlQuery.Execute();
ResultTable result = resultTableCollection[ResultType.RelevantResults];
DataTable tbl = new DataTable();
tbl.Load(result, LoadOption.OverwriteChanges);
}
当范围设置为“所有站点”时,我检索到有关搜索范围不可用的错误。其他搜索只返回0结果。
关于我做错了什么的任何想法?
答案 0 :(得分:0)
这是我们提出的解决方法。
我们没有像我们希望的那样让基础搜索工作。一旦RTM版本的Sharepoint Foundation发布,我们将再次对其进行审核。
我们安装了Search Server Express 2010测试版。这允许我们使用office服务器命名空间和相应的类。这按预期工作,我们能够以编程方式搜索Sharepoint Foundation。
答案 1 :(得分:0)
我也没有通过在Foundation Search上使用FullTextSqlQuery获得结果,但也许您可以使用KeywordQuery:
SPSite thisSite = SPControl.GetContextSite(Context);
Microsoft.SharePoint.Search.Query.KeywordQuery kwQuery = new Microsoft.SharePoint.Search.Query.KeywordQuery(thisSite);
kwQuery.RowLimit = 1000;
kwQuery.QueryText = "searchString";
kwQuery.HiddenConstraints = "site:\"http://devXX:800/test/docs\"";
kwQuery.ResultTypes = ResultType.RelevantResults;
ResultTableCollection results = kwQuery.Execute();
ResultTable relevantResults = results[ResultType.RelevantResults];
dt.Load(relevantResults, LoadOption.OverwriteChanges);