Vous êtes sur la page 1sur 28

Jonathan Hawkins Nathan Buggia

Architect Senior Product Planner


ASP.NET Live Search
Microsoft Corporation Microsoft Corporation
Why is Search important?
How to make a Search friendly site
Search enable your ASP.NET site
Search Sitemaps and dynamic data
Improving your Search experience with Live
Site Referrals Q1-Q4 2006

Direct, 30%
Google, 30%

Yahoo, 12%

MSN\Live, 3%

Other, 25%
When you’re looking for specific information on an unfamiliar website…

100%
90%
80% 47% Search
70%
60%
50%
40% 33% Browse
30%
20% 13% Abandon
10%
0%

Forrester Research, forrester.com. “It’s time to update site search functionality”, 5/1/2006, Iris Cremers
Crawlers index HTML text and follow links
Crawlers visit your site on a regular basis and index for new
content
Determine relevancy relative to the rest of the web
Make pages for users
Produce well formed HTML for your website
Use text words for key terms as crawlers can't index images
Ensure Title and ALT tags are descriptive
Handle Title in ASP.NET Master and Content pages
Meta tags that accurately describes the page contents
Keep links functional and simple
Dynamic content
Simple URLs with small number of parameters
http://www.somesite.com/view.aspx?ItemID=22
http://www.somesite.com/movies/view.aspx
Review site in Lynx text browser to ensure crawlers have a
text rendering for high end features
JavaScript, AJAX, Flash, Silverlight
Help the Crawler index the right pages
robots.txt – specify which directories to include/exclude
Sitemap – specify page relative priority, change frequency,
last modified
SearchDataSource
Natural binding of UI elements for search input
Enables data binding of search results
Style to your website to provide consistent experience
Search Providers
Live Search (formally MSN Search)
Sample code for Index Server, Yahoo, …
Look at the QuickStarts on how to write your
own search provider
Jonathan Hawkins
Architect
ASP.NET
<asp:TextBox ID="TextBoxSearch" runat="server"></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server"
OnClick="ButtonSearch_Click“ Text="Search" />

<asp:SearchDataSource ID="SearchDataSource1" runat="server" >


<SelectParameters>
<asp:ControlParameter
ControlID="TextBoxSearch"
Name="query"
PropertyName="Text“ Type="Object" />
</SelectParameters>
</asp:SearchDataSource>

<asp:GridView ID="GridView1" runat="server"


DataSourceID="SearchDataSource1">
</asp:GridView>
Enable search engine crawlers to find information in your
site
Sitemaps provide suggestions to search engines
Specify priority of the URL relative to the other pages in
your site
Specify how frequently the page is likely to change
Specify last modified date time
Partition sitemaps with a sitemap index
Supported by major search engines
See http://sitemaps.org/protocol.html for details
Turn your ASP.NET navigation sitemap into a
search sitemap
Add application dynamic data to search site map
URL to the web page
query string parameters
Sitemap priority, change frequency and last
modified date
Customize with databinding and formatting
Jonathan Hawkins
Architect
ASP.NET
Jonathan Hawkins
Architect
ASP.NET
Search query language
http://search.live.com/docs/help.aspx?t=SEARCH_REF_AdvSrchOperators.htm

Search macros (similar to stored procedures)


http://search.live.com/macros

AJAX web search control


http://search.live.com/siteowner

SOAP API
http://dev.live.com/livesearch/sdk

Web, Image, News, Phonebook, and MetaTags


Samples, samples, samples
C#, Java, PHP, Ruby, Python, Flash
Live Search Supporting Broad Commercial Use

Max Queries/ Day: 25,000


Max Queries/ Second: 10
Best effort service level agreement
Online support: http://forum.microsoft.com
Web Masters
http://help.live.com/help.aspx?project=wl_webmasters
https://siteexplorer.search.yahoo.com
http://www.google.com/webmasters
Developers
http://dev.live.com/LiveSearch
http://developer.yahoo.com/search/
http://code.google.com/apis/ajaxsearch/web.html
Sitemaps
http://sitemaps.org/protocol.html
Add Search and SiteMaps to your site today!
Live Search
USB Key in your attendee bag
Learn more - http://search.live.com
Feedback - http://forum.microsoft.com
ASP.NET Futures CTP
Download CTP today
Learn more - http://ajax.asp.net
Feedback - http://forums.asp.net/
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,
it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
<microsoft.web.preview>
<searchSiteMap enabled="true">
<providers>
<add name="Navigation"
type="Microsoft.Web.Preview.Search.AspNetSiteMapSearchSiteMapProvider,
Microsoft.Web.Preview"/>
<add name="Product"
type="ProductSiteMapData, App_Code"
targetUrl="Product.aspx“queryStringDataFields="ProductID" />
</providers>
</searchSiteMap>
</microsoft.web.preview>

<system.web>
<httpHandlers>
<add verb="*" path="SearchSiteMaps.axd“
type="Microsoft.Search.SearchSiteMapHandler" validate=“false"/>
</httpHandlers>
</system.web>
public class ProductSiteMapData : DynamicDataSearchSiteMapProvider
{
// Return a collection of results.
// Use LINQ, ADO.NET, your code to make a collection
public override IEnumerable DataQuery()
{
String connectionString = “…”;

Northwind db = new Northwind(connectionString);


Table<Product> Products = db.Products;

var q =
from p in Products
where p.UnitsInStock > (p.ReorderLevel * 10)
select p;

return q;
}
}
<?xml version="1.0" encoding="utf-8" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://example.com/Northwind/SearchSiteMaps.axd?sitemap=Product</loc>
<lastmod>2007-04-03T08:24:00.169Z</lastmod>
</sitemap>
<sitemap>
<loc>http://example.com/Northwind/SearchSiteMaps.axd?sitemap=Category</loc>
<lastmod>2007-04-03T08:24:00.169Z</lastmod>
</sitemap>
<sitemap>
<loc>http://example.com/Northwind/SearchSiteMaps.axd?sitemap=Navigation</loc>
<lastmod>2007-04-03T08:24:00.169Z</lastmod>
</sitemap>
</sitemapindex>
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://localhost:52062/Northwind/Product.aspx?ProductId=4</loc>
</url>
<url>
<loc>http://localhost:52062/Northwind/Product.aspx?ProductId=8</loc>
</url>

</urlset>
Symbols Keywords
+ & AND contains: inanchor: language:

- NOT filetype: inbody: loc:, location:

| OR feed:, hasfeed: intitle: prefer:

“” meta: inurl: {frsh=100}

() macro: ip: {popl=100}

site: {mtch=100}

http://search.live.com/macros
Open Search Standard: http://a9.com/-/spec/opensearch/1.1/

JavaScript: window.external.AddSearchProvider('http://www.nasa.gov/nasa-opensearch.xml');

Configuration File:
<?xml version="1.0" encoding="UTF-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>NASA Space Image Search</ShortName>
<Description>Search NASA.gov for the latest space photos.</Description>
<Url type="text/html" template="http://www.nasa.gov/search?q={searchTerms}" />
</OpenSearchDescription>

Vous aimerez peut-être aussi