2009-02-26 127 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」以創建更直觀的路徑。