[英]Best way to search data for text auto-complete
我遇到了一個問題,需要在基於人員姓名的文本字段下方顯示建議的/自動完成的結果。 我應該將每個人都加載到列表中並在啟動時作為集合進行排序,還是可以在數據庫中按名稱索引,並且只能選擇SELECT行,該行中人名以給定的字符序列開頭?
當然,我寧願不必在內存中保留一個潛在的巨大列表,因此,如果有人可以建議我如何在此處使用SQL,那將非常棒,謝謝。
我認為將所有內容收集起來將是整個名稱的開銷
途徑
在DB中查詢表 :如果每次都進行db調用,這將相對較慢。
在中間層存儲 :這將比db調用更快。 但是在這里您可以再次使用多種方法。
1)從數據庫中獲取數據並存儲
2)預填充緩存,然后查詢您的緩存。
在客戶端存儲 :將數據/名稱存儲在js文件中,並使用js庫以高效的方式執行搜索。 我已經嘗試過這個js庫,發現它相當不錯WICK:Web Input Completion Kit 。
現在html 5也支持本地存儲,因此您也可以對此進行評估。
因此,您需要評估所有選項,然后找到所需的一個 。
提供AJAX函數,該函數是DB的用戶name like 'input%' to DB
)的有效列表。
在您的輸入字段中調用此函數onkeyPress()
事件
自動完成是指根據用戶輸入的字符搜索結果,我只是使用此查詢檢索與模式匹配的行。
SELECT uname FROM table WHERE uname like 'cha%';
這里cha
是用戶的輸入。
自動完成將檢索
chaten
chaitanya
charles
我建議您使用jQuery
,這將有助於在您輸入字段時提供建議。 這是演示
數據源將是服務器端腳本,該腳本返回JSON數據,並通過簡單的URL為source-option指定。 另外,將minLength-option設置為2以避免查詢返回太多結果,而select-event用於顯示一些反饋。
您可以使用SELECT * FROM TABLE_NAME WHERE NAME LIKE %manu%
並在表上顯示(如果要使用類似搜索的選項)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.