java搜索引擎框架 java編寫的程序,搜索框如何實現(xiàn)搜索功能?
java編寫的程序,搜索框如何實現(xiàn)搜索功能?如果是用JAVA做的WEB項目,通常情況下都是通過前臺提交需要搜索的內容,然后后臺接收,然后向數(shù)據(jù)庫發(fā)送SQL語句進行查找相關內容,然后后臺接收到數(shù)據(jù)庫返回
java編寫的程序,搜索框如何實現(xiàn)搜索功能?
如果是用JAVA做的WEB項目,通常情況下都是通過前臺提交需要搜索的內容,然后后臺接收,然后向數(shù)據(jù)庫發(fā)送SQL語句進行查找相關內容,然后后臺接收到數(shù)據(jù)庫返回的內容,之后后臺再返回至前臺,最后通過JS或者JQ相關的框架進行渲染至界面。
一般我在工作中編寫這樣的搜索功能的流程基本上就是先在前端給一個文本框,然后通過JQ去獲取到文本框的值,通過AJAX請求后臺,JAVA在Controller層中接收到請求并獲取請求中的值,之后在JAVA在調用service層,service層調用dao層,再通過dao層關聯(lián)XML中的SQL語句并向數(shù)據(jù)庫發(fā)送SQL語句,當然在發(fā)送SQL語句的同時是已經(jīng)把從文本框接收到的值一起拼接到了SQL語句中,然后數(shù)據(jù)庫會返回相對應的值,之后就是之前的流程反過來執(zhí)行一遍dao層返回service層,再到Controller層并返回至頁面中,然后通過相關的框架把返回的值渲染至頁面,這就是一個很簡單的JAVA程序的搜索功能。
當然這也是在寫JAVA程序中做的比較多的需求了。
微信搜索的搜索框為什么不記錄搜索記錄?
微信是一個主要以封閉的社區(qū)為主的社交工具,而它的搜索功能主要包含了:朋友圈、文章、公眾號、小說、音樂、表情等6大類,實際上可以分為兩類,一是用戶內部資源搜索,二是用戶外部資源搜索。
首先,微信是以熟人圈為主,另外搜索出的結果排序依次是群聊、聊天記錄、收藏、搜一搜,因此可以看出,內部資源搜索的側重比外部資源搜索大,所以微信團隊為了解決微信自身信息過多而造成的信息冗余,這個很容易理解。
其次,微信的搜索框為什么不記錄搜索記錄,牛哥認為微信本身可以當成一個工具APP,平時看到自己感興趣的東西,都可以收藏起來,下次想看的時候,直接從收藏調出,所以從這個角度來開,用戶產生二次搜索的概率就變低了,搜索框的記錄就顯得多余。
另外,微信定位的核心是通訊和社交兩大模塊,就如第一點所說的是主打熟人網(wǎng)絡,用戶在微信使用搜索的場景極大程度是找到自身在社交過程中產生的聯(lián)系人與內容而已。微信給眾人的影響就是圈子,搜索外部資源的場景在微信里面顯得而外的別扭。
因此,牛哥覺得不記錄搜索記錄,為用戶提供一個更為簡潔明了的界面,還不給用戶造成必要的疑惑,這點比較贊。加上張老板這種只做有用的,不做冗余的極致產品設計理念,相信微信團隊也是通過用戶搜索同一關鍵詞這一行為的數(shù)據(jù)來決定不加歷史搜索記錄的。