使用SharePoint基金会2010—0结果的搜索API 我是SharePoint NeWBEE,在使用SharePoint 2010基金会的搜索API时,任何搜索结果都难以返回。

使用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

以下是我迄今为止采取的步骤

Service SharePoint基础搜索V4正在运行并作为本地服务登录 在“团队站点-站点设置-搜索和脱机可用性”下,将启用索引站点内容。 运行PowerShell脚本获取SPSearchServiceInstance返回

类型名称: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付费版本的功能。您还需要确保搜索服务已打开,并实际为内容编制索引。