sharepoint 模糊搜索

时间:2022-07-21 20:32:40

  看资料知道sharepoint中模糊搜索可以用FullTextSqlQuery,因此我们就可以业务需求进行模糊搜索的自定义开发,可惜前一段时间自己写了一个模糊搜索,发现了一个问题,暂不知道如何过滤管理中心设置好的规则,不知道有哪位大神知道如何用代码来写模糊搜索,并且能根据管理中心设置好的规则进行过滤?请留言或者给个链接,先谢谢了

  先把自己的代码贴出来:

  

     /// <summary>
/// 糊查询(爬网搜索)
/// </summary>
/// <param name="query">查询语句</param>
/// <param name="startRow">从第N行开始取数据(分页使用)</param>
/// <returns></returns>
public static DataTable DimSearch(string query, int startRow)
{
DataTable result = new DataTable(); FullTextSqlQuery fullQuery = new FullTextSqlQuery(SPContext.Current.Site);
fullQuery.Culture = System.Globalization.CultureInfo.InvariantCulture;
fullQuery.QueryText = query;
fullQuery.ResultTypes = ResultType.RelevantResults;//搜索结果类型
fullQuery.EnableStemming = false;
fullQuery.IgnoreAllNoiseQuery = true;//是否应执行搜索查询,如果查询文本只包含干扰词
fullQuery.TrimDuplicates = true;//是否删除重复项
fullQuery.StartRow = startRow;
fullQuery.RowLimit = ;//如果不设置此属性,系统会自动默认查询50条 fullQuery.KeywordInclusion = KeywordInclusion.AnyKeyword; if (SPSecurity.AuthenticationMode != System.Web.Configuration.AuthenticationMode.Windows)
fullQuery.AuthenticationType = QueryAuthenticationType.PluggableAuthenticatedQuery;
else
fullQuery.AuthenticationType = QueryAuthenticationType.NtAuthenticatedQuery; ResultTableCollection rt = fullQuery.Execute();
ResultTable resultTable = rt[ResultType.RelevantResults];
result.Load(resultTable, LoadOption.OverwriteChanges); return result;
}

sql代码如下:

SELECT LastModifiedTime,ContentClass,WorkId,Rank,Title,Author,Size,Path,Write,Filename,SiteName,PictureThumbnailURL,SiteTitle,CollapsingStatus,HitHighlightedSummary,
HitHighlightedProperties,PictureURL,IsDocument,WorkEmail,CreatedBy,FileExtension from scope() where contains(defaultproperties,'搜索关键字')