搜尋

首頁  >  問答  >  主體

java - 这种功能怎么实现?(搜索框自动补全+热词结果统计)

类似这样,输入关键字,然后自动补全,返回相关热词+结果统计,我使用solr的facet功能,但是返回的结果,都是分的很细的词,比如头戴式(2),耳机(10),而不是头戴式耳机(4)。

所以,我想问一下,图中的效果是怎么实现的,后台方面要做哪些设计?

ps:举例是素材来着小米官网

阿神阿神2889 天前578

全部回覆(6)我來回復

  • PHP中文网

    PHP中文网2017-04-17 17:44:07

    監聽onkeyup 事件,像後台發送Ajax請求,將輸入的關鍵字傳到後台,後台進行模糊匹配,將數組返回到前端;
    這裡注意兩個地方,第一是前端的onkeyup事件,這裡要做函數節流,防止頻繁向後台發送請求,傳送門:http://www.cnblogs.com/dolphinX/p/3403821.html;第二是資料庫方面的優化,被搜尋的欄位要做索引和緩存,這裡的東西涉及比較多,需要自己去查找相關資料了;
    最後是關於前端效果實現,這個jquery插件有很多,你百度搜索自動補全就能找到,這裡給你幾個:http://jq22. com/search?seo=%E8%87%AA%E5%8A%A8%E8%A1%A5%E5%85%A8

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 17:44:07

    angular可以自動綁定

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 17:44:07

    說一個我的大致方案
    先記錄用戶搜尋的詞每個用戶搜尋單獨記錄入庫(此處可做篩選也可自己導入一部分詞)
    入庫之前將中文轉換為拼音同時保存為了模糊查找
    定時任務更新每個搜尋字詞在索引中的記錄條數(此處可能不能實時)
    前台可以使用一些jquery插件有很多比如jquery-ui裡的autocomplete
    實際效果可見www.cnal.com 搜尋

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:44:07

    有個jq.autocomplete插件, 你可以看看源碼,然後二次開發下。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:44:07

    實現一個智慧提示功能需要ajax、資料庫、jsp/php、演算法等很多知識,
    如果資料量大,還需要特殊最佳化
    一個小功能,花費太大精力很不划算
    我使用了92find.c-o-m的搜索框智能提示功能託管服務,
    只要一行javascript代碼就可以實現百度、淘寶搜索框提示的全部功能
    比如:漢字拼音匹配、拼音前綴匹配、模糊搜尋、智能容錯,還可以自訂提示詞彙及其排序權重
    花五分鐘我的網站就可以部署同百度、淘寶一樣強大好用的輸入提示功能
    同時相容於IE、Firefox、Safari、Chrome、Opera各種瀏覽器
    相容ios、Android、Windows

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 17:44:07

    實現一個智慧提示功能需要ajax、資料庫、jsp/php、演算法等很多知識,
    如果資料量大,還需要特殊最佳化
    一個小功能,花費太大精力很不划算
    我使用了92find.c-o-m的搜索框智能提示功能託管服務,
    只要一行javascript代碼就可以實現百度、淘寶搜索框提示的全部功能
    比如:漢字拼音匹配、拼音前綴匹配、模糊搜尋、智能容錯,還可以自訂提示詞彙及其排序權重
    花五分鐘我的網站就可以部署同百度、淘寶一樣強大好用的輸入提示功能
    同時相容於IE、Firefox、Safari、Chrome、Opera各種瀏覽器
    相容ios、Android、Windows

    回覆
    0
  • 取消回覆