2009-02-26 52 views
1

我正在开发一个Web应用程序,其中我有以下类型的搜索功能;如何在网站中提供多种搜索功能?

  • 普通搜索:其中用户将输入搜索关键字搜索记录。
  • 热门:这不是一种搜索,它会显示在网站上流行的记录,像digg和其他社会书签网站的东西。
  • 最近:在这我显示在我的网站最近添加的记录。
  • 城市搜索:在这里,我向用户展示城市名称,如“德里”,“孟买”等,当用户点击此链接时,将显示该特定城市的所有记录。
  • 标签搜索:与城市搜索相同我有标签链接,当用户点击一个标签时,所有标有该标签的记录都会显示给用户。
  • 字母搜索:与城市和标签相同,该功能还具有诸如“A”,“B”等....等字母的链接,当用户单击任何字母链接时,所有以该特定字母开头的记录将显示给用户

现在,我的问题是我必须向用户提供上面列出的搜索,但我不能决定,我会去与一个页面(result.aspx)这将显示所有的搜索记录,我将使用查询字符串来判断用户正在使用哪个搜索以及我必须向用户显示哪些数据。例如,可以说我正在寻找城市,德里和新德里标签,然后酒店两个网址会像:

城市: www.example.com/result.aspx?search_type=city & CITY_NAME =德里

对于标签: www.example.com/result.aspx?search_type=tag & TAG_NAME =新德里的酒店

对于普通搜索: www.example.com/result.aspx? search_type =正常& q =德里+酒店+和+酒吧& filter = hotlsOnly

现在,我觉得上面所有搜索使用单页的想法是凌乱的。因此,我认为更多和更清洁的理念,这是使用单独的页面为所有类型的搜索为

对于市: www.example.com/city.aspx?name=delhi

对于标签: www.example.com/tag.aspx?name=delhi-hotels

对于普通搜索: www.example.com/result.aspx?q=delhi+hotels+and+bar &过滤器= hotlsOnly

最近: www.example.com/recent。ASPX

流行: www.example.com/popular.aspx

我的新想法是更清洁,它告诉具体的一切到这页是什么用户,这也给他的想法,在那里他现在是,他现在看到的是什么纪录。但新想法有一个问题,如果我不得不在我的搜索结果显示中改变任何内容,那么我必须对所有页面进行一个一个的更改,我也认为这个问题的解决方案也是使用用户控制的中继器控制,我会将所有的值逐个传递给用户控制,以便为每条记录呈现HTML。

一切都很好,新的想法,但我仍然无法决定,我必须去哪个DEA,任何人都可以告诉我你对这个问题的想法。

我想要实现的想法,这将是易于维护,搜索引擎友好的(提供良好的排名我的网站),用户友好(易于使用和理解用户)

感谢。

回答

2

一件事对SEO面前提起:

由于很多“结果”页面将链接通过相同内容的,有一对夫妇的优势,出现*有这些不同的网址页面:

  1. 如果您在网站上显示重复内容,或者如果有几乎无限列表的可能性,则某些搜索引擎会得到交叉。
  2. 分析交通流量。

因此,对于点1,作为一个例子,你会发现,所以一直找问题,包括numberous方式:

  1. 在主页上
  2. 通过/问题
  3. 通过/标签
  4. 通过/未答复
  5. 通过/供稿
  6. 通过/搜索

如果你看看对robots.txt那么,你会看到蜘蛛不允许访问(除其他事项外):

Disallow: /tags 
Disallow: /unanswered 
Disallow: /search 
Disallow: /feeds 
Disallow: /questions/tagged 

因此搜索引擎只能找到一个路由到内容而不是三个或四个。

让他们都经历同一页面不允许你像这样过滤。理想情况下,您希望搜索引擎为城市和标签列表建立索引,但您只需要将它列入实际的详细信息索引 - 从A到Z列表。

对于第2点,当分析您的网站流量时,如果网址有意义并且结果未隐藏在表头中,将会更容易看到人们如何使用您的网站 - 许多体面的统计信息包允许您报告查询字符串值,或者如果您拥有“精彩”的网址,则更容易。有了这样的信息也会使销售广告更容易,如果这是你感兴趣的内容。

最后,正如我在其他响应的评论中提到的,用户可能希望为特定的搜索添加书签 - 让查询烘焙以这种或那种方式(查询字符串或重写的URL)进入URL是允许这种方式的simiplist方式。

*我说“出现”,因为正如其他人指出的那样,URL重写将启用此功能,而不会在服务器上实际存在不同的页面。

0

我会坚持原来的result.aspx结果页面。从用户角度来看,我的推理是实际的URL本身传达的信息很少。你最好在页面上创建可视化提示,例如“使用标签Z在Y类中搜索X”。

至于编码和维护,因为除了类别之外,所有东西都非常相似,所以将它放在一个小小的封装中是明智的。按照您提出的第二个想法打破它,使复杂的事情复杂化,不需要太复杂。

0

沟渠查询字符串,并使用URL重写来处理您的“部分”..更好的搜索引擎优化和更清晰的书签/用户可读性的立场。

市:www.example.com/city/delhi/

标签:www.example.com/tag/delhi-hotels/

近期:www.example.com/recent/

人气:www.example.com/popular/

常规搜索可以去到www.example.com/search.aspx什么的。

+0

您能否告诉我如何实现这种URL重写,如何将“www.example.com/city/delhi/”指向“www.example.com/result.aspx?search_type=city&city_name=delhi “ – Prashant 2009-02-26 07:18:28

+0

任何解决方案,HTTPModule会为我做这个? – Prashant 2009-02-26 07:20:22

+0

查看http://urlrewriter.net/ – 2009-02-26 07:24:43

1

有一些需要解决的正确回答你的问题的几个问题:你并不一定需要能够处理数据之前重定向到结果页

  1. 。包含提交搜索界面的页面或控件可以处理提交的搜索参数(以及搜索类型),并启动对提供搜索结果的数据库或中介web服务的调用。然后,您可以使用单个结果页面来显示检索到的数据。

  2. 如果您必须通过查询字符串将提交的搜索参数传递到结果页面,那么使用单个结果页面解析这些参数并有条件地显示结果会更好。

  3. 大多数用户不依赖浏览器地址栏中的url/querystring信息来标识其在网站中的当前位置。您应该有更直观的指示(例如面包屑控件或标题标签)以指示当前位置。另外,正如您所提到的,可维护性问题在这里非常重要。

我绝对不会推荐第二个选项(对每种搜索使用单独的结果页)。如果您关注搜索引擎优化,请使用URL重写来构建URL“slugs”以创建更直观的路径。