簡體   English   中英

將Search API與Sharepoint Foundation 2010一起使用-0個結果

[英]Using the Search API with Sharepoint Foundation 2010 - 0 results

我是一個Sharepoint新手,並且在使用SharePoint 2010 Foundation中的搜索API獲取任何搜索結果以返回時遇到了麻煩。

這是我到目前為止已采取的步驟。

  1. Service Sharepoint Foundation Search v4正在運行並以本地服務身份登錄
  2. 在“團隊網站-網站設置-搜索和脫機可用性”下,啟用了“索引網站內容”。
  3. 運行PowerShell腳本Get-SPSearchServiceInstance返回

TypeName:SharePoint基礎搜索
描述:搜索服務器上的搜索索引文件
ID:91e01ce1-016e-44e0-a938-035d37613b70
服務器:SPServer名稱= V-SP2010
服務:SPSearchService名稱= SPSearch4
IndexLocation:C:\\ Program Files \\ Common Files \\ Microsoft共享\\ Web服務器擴展\\ 14 \\ Data \\ Applications
ProxyType:默認
狀態:在線

  1. 當我使用團隊網站上的搜索文本框進行搜索時,會得到預期的結果。

現在,當我嘗試使用Search 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個結果。

關於我在做什么錯的任何想法嗎?

這是我們想出的解決方法。

  1. 我們沒有像我們希望的那樣進行基礎搜索。 Sharepoint Foundation的RTM版本發布后,我們將再次進行審查。

  2. 我們安裝了Search Server Express 2010 Beta。 這使我們可以使用Office服務器名稱空間和相應的類。 這按預期工作,我們能夠以編程方式針對Sharepoint Foundation進行搜索。

我也從未在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM