2011-11-03 74 views
0

我想在某些文本字段上啓用自動填充功能,但並不真正瞭解最佳策略。所有數據都存儲在CouchDB中,並且我有一些視圖返回id和帶有自動完成名稱的鍵。我讀了關於start key and end key solution,我想用now.js來使用它。那看起來怎麼樣?使用CouchDB和now.js自動完成

這是正確的解決方案,還是應該與redis或memcache同步?或者填寫一份Trie的名單?或HTMl5本地存儲?

數據在主頁面上使用,因此經常查詢,但該集不是很大,最多可能有500個條目,每週一次。

回答

0

我使用了CouchDB Typeahead Search的now.js自動完成功能,結果非常好。不想安裝另一個庫(YUI)。

0

500條目在我看來不算太大。您可以在開始時執行此操作:前端的YUI自動完成模塊。在加載頁面時,通過REST api從服務器檢索一次數據,併爲每個需要它的字段初始化自動完成數據結構。

對於較大的數據集,您仍然可以使用YUI自動填充小部件,但每次擊鍵時數據都將來自服務器。在服務器上,您可以預先構建一個基於三元搜索樹的索引(每週一次),並使用Web服務爲其提供服務,使用部分類型的字符串並返回固定的最大匹配列表作爲輸出。查看雅虎財經上的財務符號自動完成。

基於服務器的方法的優點是,無論語料庫(數據)大小如何,性能都很高。但是爲了獲得最佳的內存使用量,您只需要在樹的節點中存儲有限的匹配列表。使用第一種方法,即YUI自動填充模塊存儲和索引數據的位置,您可以看到輸入的所有匹配項,但響應可能會稍微慢一些。