使用SharePoint基金会2010—0结果的搜索API 我是SharePoint NeWBEE,在使用SharePoint 2010基金会的搜索API时,任何搜索结果都难以返回。
以下是我迄今为止采取的步骤 Service SharePoint基础搜索V4正在运行并作为本地服务登录 在“团队站点-站点设置-搜索和脱机可用性”下,将启用索引站点内容。 运行PowerShell脚本获取SPSearchServiceInstance返回使用SharePoint基金会2010—0结果的搜索API 我是SharePoint NeWBEE,在使用SharePoint 2010基金会的搜索API时,任何搜索结果都难以返回。,sharepoint,Sharepoint,以下是我迄今为止采取的步骤 Service SharePoint基础搜索V4正在运行并作为本地服务登录 在“团队站点-站点设置-搜索和脱机可用性”下,将启用索引站点内容。 运行PowerShell脚本获取SPSearchServiceInstance返回 类型名称:SharePoint基础搜索 描述:搜索服务器上的搜索索引文件 识别号:91e01ce1-016e-44e0-a938-035d37613b70 服务器:SPServer Name=V-SP2010 服务:SPSearchServic
类型名称:SharePoint基础搜索 描述:搜索服务器上的搜索索引文件 识别号:91e01ce1-016e-44e0-a938-035d37613b70 服务器:SPServer Name=V-SP2010 服务:SPSearchService Name=SPSearch4 索引位置:C:\Program Files\Common Files\Microsoft Shared\Web Server Exten sions\14\数据\应用程序 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个结果
你知道我做错了什么吗 这是我们想出的解决办法 我们没有像我们希望的那样进行基础搜索工作。一旦发布了SharePoint基金会的RTM版本,我们将再次查看它。 我们安装了搜索服务器Express 2010测试版。这允许我们使用office server名称空间和相应的类。这是预期的,我们能够以编程方式搜索SharePoint基金会。
这是我们想出的解决办法 我们没有像我们希望的那样进行基础搜索工作。一旦发布了SharePoint基金会的RTM版本,我们将再次查看它。 我们安装了搜索服务器Express 2010测试版。这允许我们使用office server名称空间和相应的类。这是预期的,我们能够以编程方式搜索SharePoint基金会。
在基础搜索中使用FultExtQuqQuy也没有得到结果,但也许您可以使用KEYWordQue:
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);
在基础搜索中使用FultExtQuqQuy也没有得到结果,但也许您可以使用KEYWordQue:
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);
在SP基础上,所有站点的范围将不起作用。搜索所有网站集是一项降级为SharePoint付费版本的功能。您还希望确保搜索服务被打开并实际索引事物。所有站点范围在SP基金会中不起作用。搜索所有网站集是一项降级为SharePoint付费版本的功能。您还需要确保搜索服务已打开,并实际为内容编制索引。