wordpress怎么找回密码,北京官网seo收费,体育新闻最新消息乒乓球,php开源订单管理系统在本系列的上一篇文章中#xff0c;我们探索了ASP.NET Futures (May CTP)的SearchSiteMap功能#xff0c;说明了如何将ASP.NET的SiteMap影射为符合Sitemaps协议的XML以便搜索引擎更好的抓取我们的站点。然而让搜索引擎更好的抓取我们的站点了#xff0c;这部分的优化却仅仅对…在本系列的上一篇文章中我们探索了ASP.NET Futures (May CTP)的SearchSiteMap功能说明了如何将ASP.NET的SiteMap影射为符合Sitemaps协议的XML以便搜索引擎更好的抓取我们的站点。然而让搜索引擎更好的抓取我们的站点了这部分的优化却仅仅对来自于搜索引擎的访客有用这是否有点浪费我们是否可以选择站内的搜索也通过Internet搜索引擎例如Google来实现从而避免开发自己的站内搜索引擎从ASP.NET Futures (May CTP)开始这也便得可能了需要使用的仅仅是SearchDataSource控件以及简单的几句配置。 首先说说SearchDataSource是干什么的吧它其实是一个ObjectDataSource的派生类只不过设置了基类的TypeName为Microsoft.Web.Preview.Search.SearchService而SelectMethod则是Search。事实上你放置一个普通的ObjectDataSource然后设置这两个属性也就可以获得SearchDataSource的效果。之后你就可以像使用普通DataSource控件那样使用搜索返回的数据绑定到Repeater或者GridView又或者绑定到你自己的数据控件都是可以的。 SearchDataSource返回的貌似是一个IEnumerable而事实上是一个ListSearchResult通过Reflector阅读SearchService.Search方法的代码就知道了。然后我们来看看SearchResult类型包含什么属性。它拥有3个string属性分别是Url、Title、Description。在使用SearchDataSource的时候数据控件绑定这3个属性就够了。那么之后我们还需要做什么呢接下来就是配置provider了因为SearchService.Search方法正是通过轮询各SearchProviderBase派生类来获取搜索结果的。 这听上去很复杂的样子哦远超过了放置一个SearchDataSource的难度。其实不是的ASP.NET Futures (May CTP)中已经包含一个SearchProviderBase派生类了那就是WindowsLiveSearchProvider。此provider的配置方法如下microsoft.web.preview search enabledtrue providers add nameWindowsLiveSearchProvider typeMicrosoft.Web.Preview.Search.WindowsLiveSearchProvider, Microsoft.Web.Preview appID siteDomainName / /providers /search/microsoft.web.preview 其中的appID是你在Windows Live Search申请的Application ID还没有Application ID的话可以到Windows Live Search的Developer站点申请一个。siteDomainName就是你的网站的域名例如我的网站就是CatChen.biz。另外你还要确认Windows Live Search已经抓取了你的网站的页面通过大部分搜索引擎都支持的site:指令你就可以知道一个搜索引擎对你的网站的抓取情况例如我可以通过site:CatChen.biz搜索来了解Windows Live Search对我的网站的抓取情况。完整配置并且确保搜索引擎对你的站点的抓取后你就可以通过SearchDataSource获得期望的搜索结果了。 如果你不满足于WindowsLiveSearchProvider提供的功能你可以实现自己的SearchProviderBase派生类。在官方文档中Enabling Search页上最后一个例子提供了两个自定义的provider一个是用于Yahoo的另一个是用于Index Server的。另外不要把目光局限于某个特定的搜索引擎如果你觉得Google、Yahoo、Windows Live都不够好那么你可以考虑做一个自己的meta-search源搜索引擎。所谓的meta-search是指通过调用若干个不同的搜索引擎根据它们的返回结果再次进行信息的分析与提取最后生成自己的搜索结果。 在你实现了自己的SearchProviderBase派生类后有一点需要注意的那就是SearchService是不知道返回结果的排名的。一般我们都会认为搜索结果越靠前的当然应该是越匹配的这在配置一个provider时是没什么问题的。然而配置多个provider后SearchService仅仅是将多个provider的结果拼接成一个更大的ListSearchResult这时候就毫无排序而言了。因此如果你需要使用多个provider我还是建议直接写一个SearchProviderBase派生类使用meta-search的方式自己去合并以及重排结果。 最后如果你有兴趣继续关注有关ASP.NET Futures新功能的介绍可以考虑订阅我的博客 Cat in Chinese (feed: http://feeds.feedburner.com/CatChen/Chinese) Cat in dotNET (feed: http://feeds.feedburner.com/CatChen/dotNET)