在现代网站内容管理系统(CMS)中,搜索功能是用户获取信息的关键工具。本文将介绍如何利用SharePointPortal Server(SPS)来增强网站搜索能力。将通过设置SPS的搜索服务,并将其集成到CMS中,以提供更强大的搜索功能。
要开始使用SPS进行搜索,需要按照Emmanuel Desigaud的文章中的指南来设置SPS。基本上,需要设置一个内容索引并添加一个内容源。同时,请确保在CMS网站上执行搜索的用户能够访问SPS搜索Web服务。
首先,将SPSSearch.xml
文件复制到XML目录中,或者复制到网站的任何位置。如果希望在搜索结果中包含额外的列,请在select
语句中添加额外的字段。还可以通过修改
来更改返回的搜索结果的最大数量。
接下来,将用户控件SearchInput
复制到用户控件目录中。默认的搜索按钮是一个文本按钮。如果想要一个图像按钮,可以相应地更改SearchButton
和SearchImageButton
的Visible
属性,并更新SearchImageButton
的ImageUrl
。即使不使用两个按钮,也不要删除它们。
将用户控件SearchResults
复制到用户控件目录中。如果在SPSSearch.xml
中添加了额外的字段,请自定义SearchResult.ascx
以包含这些字段。在SearchResults.aspx.cs
中,使用项目名称来限定命名空间SPSSearch
:
using ProjectName.SPSSearch;
将QueryService.cs
和SearchUtilities.cs
复制到类目录中。将Search.css
复制到CSS目录中。
在web.config
文件中,添加以下键到appSettings
:
将用户控件SearchInput
添加到CMS网站中,希望搜索输入框显示的位置。通过SearchResultsUrl
属性指定结果页面的URL。搜索结果页面可以是CMS模板页面或常规ASP.NET页面。例如:
<%@ Register TagPrefix="uc1" TagName="SearchInput" Src="~/UserControls/SearchInput.ascx" %>
...
将用户控件SearchResult
添加到搜索结果页面。该控件有两个属性可以设置:
DefaultPageSize
: 每页搜索结果的数量,默认为10。FilterRights
: [true | false]。默认情况下,搜索结果将过滤掉没有权限查看的CMS页面。如果搜索结果不包含任何授权内容,或者如果希望提高性能,请将其设置为false。但请谨慎使用。在所有引用搜索控件的页面中包含Search.css
。
将所有新文件包含到CMS项目中。在VS.NET中重新构建网站。