鍍金池/ 問答/人工智能/ 使用Redis實(shí)現(xiàn)較復(fù)雜自動(dòng)補(bǔ)全的思路

使用Redis實(shí)現(xiàn)較復(fù)雜自動(dòng)補(bǔ)全的思路

我想請教一下使用Redis來做自動(dòng)補(bǔ)全的思路,用戶場景是這樣的:
我有很多CSS Selector字符串,比如:

div#video.large div#video-controls span#pause.btn.btn-large

我希望當(dāng)用戶輸入d#v s#p的時(shí)候上面這個(gè)Selector就會(huì)顯示出來,因?yàn)?code>d#v是div#video(ddiv,#v#video)的一個(gè)前綴,同時(shí)類似地s#p是滿足span#pause的前綴。

我的想法是用Redis的Set對Selector的每一個(gè)tag, id, class來做前綴索引,然后對于用戶輸入直接在Redis中找出d,#v,s,#p這些Set的交集,然后再在查詢代碼中進(jìn)一步根據(jù)完整的查詢做過濾,因?yàn)檫€需要同時(shí)滿足s#p出現(xiàn)在d#v的后面這一條件。

我對Redis并沒有很多的實(shí)際使用經(jīng)驗(yàn),所以想請問一下大神還有沒有更好的思路,是否有巧妙的辦法能夠同時(shí)利用Redis處理后面的這一個(gè)順序要求。

回答
編輯回答
朕略傻

你可以再講標(biāo)簽寫入 Redis 的時(shí)候再維護(hù)一個(gè) key 是縮寫,里面存放的是所有的標(biāo)簽的Set

2018年3月13日 01:56